私は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
そう:
- 最初に、複数のマニフェストを正しく呼び出す「新しい」(インポートではない)方法を理解していますか?その中のすべての* .ppファイルが実行されるディレクトリを指す必要がありますか?
- 次に、Vagrantは、Puppetの「インポート」の廃止に伴うディレクトリの参照に対応するために、この新しい変更に「追いついた」のでしょうか。
更新:シェーンのおかげで、#2の問題(Vagrantのコードが追いつかれてパペットマニフェストディレクトリを参照できない)は、VagrantのGitHubの課題追跡サイトで報告されており、パッチが適用されています:https : //github.com/mitchellh/vagrant / issues / 4169