http://docs.puppetlabs.com/hiera/1/index.html
Hieraはkey/value型(yaml, json)の設定データ検索ツール。 ノードごとの設定値をHieraに記述することで、マニフェストからノード固有設定を分離する。
例:
- MySQLやbasic認証のパスワード
- オリジナルyumserverのアドレス
- production, integration, development環境において値の異なる変数
RHEL系ならyumから入る。 詳細はこちら。
http://docs.puppetlabs.com/hiera/1/configuring.html
hieraに関するデータディレクトリやデータ形式を決定するメタデータhiera.yamlの設置場所は、デフォルトで$confdir/hiera.yaml
OpenSource版のPuppetなら/etc/puppet/hiera.yaml
に設置しても読み込まれる。
また、puppet.conf
にhiera.yamlの位置を指定することも可能。
例えば以下のような設定が記述される。デフォルト値から変更しないものは省いても良い。
---
:yaml:
:datadir: "%{settings::confdir}/hieradata/%{::environment}"
:hierarchy:
- common
:yaml:
にはデータディレクトリの位置を書いている%{settings::confdir}
は、puppetmasterが所持しているReserved Variables%{::environment}
は、例えばproduction
やdevelopment
等を設定し、hieradataディレクトリ以下に名前に対応したディレクトリを設置する。
hiera.yaml
のトップレベルに:hierarchy
キーとその値を設定することで、Hieraはヒエラルキデータをロードすることが出来る。
例:
:hierarchy:
- one
- two
- three
この場合、Hieraは 上から順番に 探していく。
one
の中に目的のデータがなければ次のtwo
へ、同様の結果であればその次のthree
へと検索対象が遷移する。
(あるいはone
そのものが見つからない場合も次の対象を検索するようになるらしい。)