Vagrantは実行するPuppetマニフェストのディレクトリを指すことができますか?


9

私はVagrantを使用していくつかの初期Puppet構成をジャンプスタートし、追加マニフェストをモジュールに作成してそのように含めることなく、複数のマニフェスト(site.pp以外)をパペット実行ワークフローに含める/実行する方法について混乱しています。

Vagrantがポイントするパペットマニフェストディレクトリ(以下を参照)には、実行したいマニフェストが2つあります:site.ppとhierasetup.pp。

config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "puppet_files/manifests"
  puppet.module_path    = "puppet_files/modules"
  puppet.manifest_file  = "site.pp"
  puppet.options = "--verbose --debug"
end 

現在、site.ppをhierasetup.ppを呼び出すマニフェストにしています。私のsite.ppは次のようになります:

File {
  owner => 'root',
  group => 'root',
  mode  => '0644',
}

import "hierasetup.pp"

include jboss

しかし、「インポート」の廃止について次のエラーが表示されます。

警告:「インポート」の使用は、/ tmp / vagrant-puppet-1 / manifests / site.pp:33で廃止されました。http://links.puppetlabs.com/puppet-import-deprecationを参照してください (grammar.ra:610:in `_reduce_190 'にあります)

「代わりに試すこと」の下で参照されているURLによると、「ノード定義を個別のファイルに保持するには、メインマニフェストとしてディレクトリを指定してください」とあります。

さらに、主なマニフェストに関するこの人形の文書はこう言っています:

" 推奨:ENCに依存する代わりにメインマニフェストを多用している場合は、マニフェスト設定を$ confdir / manifestsに変更することを検討してください。これにより、インポートキーワードを回避しながらトップレベルコードを複数のファイルに分割できます。単純な環境の動作にも一致します。

Puppetは特定のマニフェストファイルではなくディレクトリ全体を参照できるようです。そのため、Vagrantがこれに備えて " puppet.manifest_file =" site.pp "行を削除し、代わりに、すべての* .ppファイルが実行される親ディレクトリですが、Vagrantでその行を削除すると、代わりに期待される「default.pp」に関する不満が生成されます。

puppetプロビジョナー:*設定されたPuppetマニフェストがありません。既存のマニフェストへのパスを指定してください:/some/path/puppet_files/manifests/default.pp

そう:

  1. 最初に、複数のマニフェストを正しく呼び出す「新しい」(インポートではない)方法を理解していますか?その中のすべての* .ppファイルが実行されるディレクトリを指す必要がありますか?
  2. 次に、Vagrantは、Puppetの「インポート」の廃止に伴うディレクトリの参照に対応するために、この新しい変更に「追いついた」のでしょうか。

更新:シェーンのおかげで、#2の問題(Vagrantのコードが追いつかれてパペットマニフェストディレクトリを参照できない)は、VagrantのGitHubの課題追跡サイトで報告されており、パッチが適用されています:https : //github.com/mitchellh/vagrant / issues / 4169

回答:


6

最初に、複数のマニフェストを正しく呼び出す「新しい」(インポートではない)方法を理解していますか?その中のすべての* .ppファイルが実行されるディレクトリを指す必要がありますか?

そうです。こちらをご覧ください

ENCに依存せずにメインマニフェストを多用している場合は、マニフェスト設定を$ confdir / manifestsに変更することを検討してください。これにより、インポートキーワードを回避しながら、トップレベルのコードを複数のファイルに分割できます。

また、manifestそしてmodulepathまた、ディレクトリ環境とマニフェストディレクトリの行動のために廃止なっている、見るこちら

ディレクトリ環境が完成したので、config-file環境は非推奨になりました。puppet.confで環境ブロックを定義すると、puppet.confでmodulepath、manifest、config_version設定を使用する場合と同様に、非推奨の警告が表示されます。

これは多くのデプロイメントにとってかなり大きな変更ですが、長期的にはかなりの改善になるはずです。


次に、Vagrantは、Puppetの「インポート」の廃止に伴うディレクトリの参照に対応するために、この新しい変更に「追いついた」のでしょうか。

いいえ、ありません。彼らのドキュメントから:

manifest_file(文字列)-Puppet実行のエントリポイントとして機能するマニフェストファイルの名前。このマニフェストファイルは、構成されたmanifests_pathに存在することが期待されています

Vagrantで使用するために、今のところ非推奨の警告を処理することに悩まされていますが、これは残念です。ただし、インポートは4.xまでは削除の予定がないため、Vagrantが追いつくまでの時間を確保します。


さて、私は1時間以上何が起こったのかを理解しようとしているので、私が夢中にならないことを知っておくのは良いことです。Vagrant開発者はその機能の必要性を認識していますか、それともそのような追加を提案する場所はありませんか?
SeligkeitIstInGott 2014年

まだ依頼されていないようです- こちらをご覧ください。そこに問題をドロップして、最新のパペットとよりよく整合させてください(または、githubアカウントを持っていない場合は私がやります)!
シェーンマッデン2014年

私の開発同僚はすべてgithubアカウントを持っていると思いますが、持っている場合、自分のログインがどうなるかさえわかりません。私はIT担当者であり、コーダーではないので、必要はありません。ひどくそれをしてもいいですか?
SeligkeitIstInGott 2014年

1
@SeligkeitIstInGott確かに、私は何かを提出します!
シェーンマッデン2014年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.