4

我希望 puppet 在 /etc 中查找 hiera.yaml,但它正在 /etc/puppet 中查找它。我在 puppet.conf 中加入了一行:

hiera_config = /etc/hiera.yaml

但是当我运行脚本时仍然给我 hiera.yaml 更新警告。

我正在从 Vagrant 1.2.2 运行脚本。使用人偶 3.2.2

我在虚拟机中运行 Centos 6.4。

4

3 回答 3

8

我发现 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 源代码以自己实现此功能时才找到它。

于 2013-08-04T19:14:32.283 回答
2

嗯...在 Vagrant 1.2.2 和 Puppet 3.2.3 上,我可以在 puppet.conf 中设置 hiera_config 没有问题。我会仔细检查您是在 Vagrant vm 上而不是在主机上编辑 /etc/puppet.conf,并且 hiera_config 行是 [main] 块,而不仅仅是在 [master] 块中。

如果这两个条件都为真并且仍然无法正常工作,您可以尝试在 Vagrantfile 中显式设置 hiera_config:

config.vm.provision :puppet do |puppet|
  ...
  puppet.options = '--hiera_config=/etc/hiera.yaml'
end

祝你好运!

于 2013-07-30T22:10:48.613 回答
1

Puppet 配置以root用户身份运行,而不是vagrant,所以这就是它不会注意到 /vagrant 中的 puppet.conf 的原因。

如果您puppet config print从用户 vagrant 和 root 在 vm 中运行,您会看到每个用户的所有 puppet 配置设置并进行比较。

于 2013-10-02T08:12:53.427 回答