Я занимаюсь обновлением старой установки 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-файла.
Указанная строка конфигурации марионетки находится в файловом ресурсе, который указывает:
content => hiera('nagios::htpasswd.users')
Однако я могу успешно выполнить следующее:
puppet apply -e 'notice hiera("nagios::htpasswd.users")'
Итак, я думаю, что все данные находятся в нужном месте, но что марионеточный сервер по какой-то причине не использует hiera-файл, как ожидалось, несмотря на то, что он настроен в /etc/puppet/hiera.yaml
Кто-нибудь может подсказать, что здесь происходит?
Хм. Что ж, это было быстро. Я сам разобрался. puppetserver хранит свой собственный набор драгоценных камней, поэтому мне пришлось сделать:
puppetserver gem install hiera-file
service puppetserver restart