puppet に /etc で hiera.yaml を探してもらいたいのですが、/etc/puppet で探しています。puppet.conf に次の行を追加します。
hiera_config = /etc/hiera.yaml
しかし、スクリプトを実行すると、まだ hiera.yaml 更新の警告が表示されます。
Vagrant 1.2.2 からスクリプトを実行しています。パペットの使用 3.2.2
VMでCentos 6.4を実行しています。
vagrant の puppet プロビジョナーが、hiera_config_path
まさに必要なことをサポートするようになったことがわかりました。
config.vm.provision :puppet do |puppet|
# path on host machine to hiera.yaml
puppet.hiera_config_path = '/Users/me/vms/hiera/hiera.yaml'
# This sets the relative path for hiera data directories
puppet.working_directory = '/Users/me/vms/hiera'
end
これはVagrant: Up and Runningに記載されていますが、この機能を自分で実装するために vagrant のソースを調べ始めるまで、見つけられませんでした。
うーん... Vagrant 1.2.2 と Puppet 3.2.3 では、puppet.conf で問題なく hiera_config を設定できます。ホスト マシンではなく Vagrant vm で /etc/puppet.conf を編集していること、および hiera_config 行が [master] ブロックだけでなく [main] ブロックであることを再確認します。
これらの条件が両方とも当てはまり、それでも機能しない場合は、Vagrantfile で hiera_config を明示的に設定してみてください。
config.vm.provision :puppet do |puppet|
...
puppet.options = '--hiera_config=/etc/hiera.yaml'
end
幸運を!
Puppet のプロビジョニングは vagrant ではなく root ユーザーとして実行されるため、 / vagrant の puppet.conf に注意を払わないのはそのためです。
puppet config print
ユーザーvagrantおよびrootからvm内で実行すると、ユーザーごとのすべてのパペット構成設定が表示され、比較されます。