次の方法でパペットの変更を適用するマスターレスパペットセットアップを実行しています。
puppet apply /tmp/puppet/manifests/site.pp --modulepath=/tmp/puppet/modules --hiera_config=/tmp/puppet/hiera.yaml
私はhieraでさまざまなタイプのノードを処理しようとしており、出発点として、ノードに設定されているカスタムファクトを使用しようとしています。このファクトはノードタイプであり、この例ではディスクレスの値に設定されています。
ノード上のファクトはこの事実を認識します。
# facter -y | grep nodetype
nodetype: diskless
そしてhiera.yamlには以下が含まれています
---
:backends:
- yaml
:yaml:
:datadir: /tmp/puppet/data
:hierarchy:
- node/%{::nodetype}
そして/tmp/puppet/data/node/diskless.yamlにあります
---
cluster: blues
その後、hieraが必要に応じて変数を設定していることを再確認しようとしましたが、機能していないようです。
hiera -y diskless.yaml cluster
nil
問題をデバッグするためのより良い方法はありますか? hieraがこのユースケースで動作しない(または動作できない)場合は残念ですが、これは単純なことだと確信しています。
乾杯
編集1:
追加のデバッグ
hiera cluster '::nodetype=diskless' -d
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Hiera YAML backend starting
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking up cluster in YAML backend
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source defaults
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/defaults.yaml, skipping
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Looking for data source global
DEBUG: Fri Oct 31 16:54:01 -0400 2014: Cannot find datafile /var/lib/hiera/global.yaml, skipping
nil
編集2:
フラグ--hiera-configを設定しても何も起こらないようで、/ etc /hiera.yamlを使用するhiera.yaml構成にシンボリックリンクする必要があります。
編集3:/etc/hiera.yamlを/tmp/puppet/hiera.yamlにシンボリックリンクした後、hiera変数を検索できましたが、期待どおりにpuppetマニフェストで使用できませんでした。代わりに私はそのように直接hieraに電話しなければなりませんでした
$networking_config = hiera('networking::network::networking_config','no')
ひどく紛らわしい
これを試して:
hiera cluster ':: nodetype = diskless'
参照: https://docs.puppetlabs.com/hiera/1/command_line.html#fact-sources