我正在将旧的 puppet 2.7 安装升级到 puppet 3.8,并且我也一直在调整 hiera 部分数据的位置。我不确定这到底是哪个原因造成的。
puppet agent --test
,在运行 puppetserver 的同一系统上运行时出现错误:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find data item nagios::htpasswd.users in any Hiera data file and no default supplied at /etc/puppet/modules/nagios/manifests/master.pp:77 on node xxx.example.com
这个特定的 hiera 密钥来自于通过 hiera-file 后端的文件。
引用的 puppet 配置行位于文件资源中,其指定:
content => hiera('nagios::htpasswd.users')
但是,我可以成功运行以下命令:
puppet apply -e 'notice hiera("nagios::htpasswd.users")'
因此,我认为所有数据都在正确的位置,但由于某种原因,puppetserver 没有按预期使用 hiera-file,尽管它在 /etc/puppet/hiera.yaml 中进行了配置
有人能说出这里发生了什么事吗?
答案1
嗯。那很快。我自己想通了。puppetserver 保留了自己的一套 gem,所以我必须这样做:
puppetserver gem install hiera-file
service puppetserver restart