Назад | Перейти на главную страницу

Использование примера Hiera NTP в марионетке не работает

В настоящее время я пытаюсь восстановить описанный пример Вот

Проблема в том, что когда я пытаюсь получить переменную 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 бэкэнд на данный момент. Добавьте его, если вы действительно в этом нуждаетесь. Большинство пользователей этого не сделает.