私は現在、説明されている例を再構築しようとしています ここ
問題は、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が正常に機能したかどうかを確認するためにどのツールを使用するかは正確にはわかりません。ウェブサイトからコピーしたので大丈夫だと思います。
確かに、パペットマスターも再起動しました。
では、hieraツールが私に与えるエラーの問題は何でしょうか?
%{::clientcert}
の代わりに%{::fqdn}
を使用するより安全なパスを選択しました。これは称賛に値します。ただし、ルックアップを実行するときは、::fqdn=debian
ではなくその値を指定してください。
さらに、:datadir
ではなく、puppet
バックエンドに:datasource
オプションがあります( docs を参照)。
とりあえずpuppet
バックエンドを削除することをお勧めします。本当に必要な場合は追加してください。ほとんどのユーザーはそうしません。