В настоящее время я пытаюсь восстановить описанный пример Вот
Проблема в том, что когда я пытаюсь получить переменную ntp :: servers, я получаю следующую ошибку, с которой у меня проблемы с пониманием.
hiera ntp::servers ::fqdn=debian
/usr/lib/ruby/vendor_ruby/hiera/backend.rb:18:in `[]': can't convert Symbol into Integer (TypeError)
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:18:in `datadir'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:98:in `datasourcefiles'
from /usr/lib/ruby/vendor_ruby/hiera/backend/yaml_backend.rb:16:in `lookup'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:206:in `block in lookup'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:203:in `each'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:203:in `lookup'
from /usr/lib/ruby/vendor_ruby/hiera.rb:60:in `lookup'
from /usr/bin/hiera:225:in `<main>'
Я считаю, что стрелять по точкам
Мой /etc/puppet/hiera.yaml. (немного другое, но тоже должно работать)
:backends:
- yaml
- puppet
:yaml:
- :datadir: /etc/puppet/hieradata
:puppet:
- :datadir: data
:hierarchy:
- "node/%{::clientcert}"
- "%{::environment}"
- common
Символическая ссылка верна
ls -l /etc/hiera.yaml
lrwxrwxrwx 1 root root 22 Sep 15 15:33 /etc/hiera.yaml -> /etc/puppet/hiera.yaml
Мой пример файла: /etc/puppet/hieradata/node/debian.yaml
ntp::restrict:
-
ntp::autoupdate: false
ntp::enable: true
ntp::servers:
- 0.us.pool.ntp.org iburst
- 1.us.pool.ntp.org iburst
- 2.us.pool.ntp.org iburst
- 3.us.pool.ntp.org iburst
Я точно не знаю, какие инструменты использовать, чтобы проверить, правильно ли сформирован YAML. Я скопировал его с веб-сайта, так что считаю, что это нормально.
Puppetmaster также был перезапущен, чтобы быть уверенным.
Так в чем же может быть проблема с ошибкой, которую выдает мне инструмент hiera?
Вы выбрали более безопасный путь использования %{::clientcert}
вместо того %{::fqdn}
, что похвально. Но не забудьте указать это значение, а не ::fqdn=debian
при выполнении поиска.
Кроме того, вместо :datadir
, то puppet
бэкэнд имеет :datasource
вариант (см. документы).
Я рекомендую удалить puppet
бэкэнд на данный момент. Добавьте его, если вы действительно в этом нуждаетесь. Большинство пользователей этого не сделает.