木偶在错误的地方寻找hiera.yaml

时间:2013-07-30 20:30:16

标签: vagrant puppet

我希望puppet在/ etc中寻找hiera.yaml,但是它正在/ etc / puppet中寻找它。我在puppet.conf中添加一行:

hiera_config = /etc/hiera.yaml

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

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

我在vm中运行Centos 6.4。

3 个答案:

答案 0 :(得分:8)

我发现流浪汉中的木偶供应者现在支持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中有记载,但在我开始研究流浪者来源以实现此功能之前,我没有找到它。

答案 1 :(得分: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
祝你好运!

答案 2 :(得分:1)

Puppet配置以 root 用户身份运行,而非 vagrant ,这就是为什么它没有注意到/ vagrant中的puppet.conf。

如果你在用户流浪者和root用户的vm中运行puppet config print,你会看到每个用户的所有木偶配置设置并进行比较。