$::osfamily
マスターのないPuppet設定があり、移植性に基づいてパッケージ名などのいくつかの情報を簡単に追加したいと思います。ヒエラがこんなものに合うようにデザインされているようですが、実際にどうするのかわかりません。同じソースストア内のPuppetマニフェストでソースストアのHieraデータを使用する修正しないでください何もない存在する/etc
。デフォルトでは、すべての文書は、他のリポジトリを使用するたびに手動で変更または/etc/puppetlabs/code/hiera.yaml
変更したいと仮定しているようです。/etc/puppetlabs/puppet/puppet.conf
それとも私がSheilaを完全に誤解しているのでしょうか?
必要に応じてpuppet.confをリポジトリに追加して実行するたびに参照できますが、どのように参照できますかpuppet apply
?現在のディレクトリルートhiera_config
?
ベストアンサー1
はい、所有されていない設定でHieraデータを使用できます。 hiera 設定で --hiera_config を指定すると、hiera データを探す場所を指定できます。
例:
nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.31 seconds
Info: Applying configuration version '1449108414'
Notice: test: bar
Notice: /Stage[main]/A/Notify[test: bar]/message: defined 'message' as 'test: bar'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$ cat hiera.conf
---
:backends: yaml
:yaml:
:datadir: /tmp/puppet/data
:hierarchy: common
:logger: console
nkts@trololo:/tmp/puppet$ cat data/common.yaml
a::foo: bar
nkts@trololo:/tmp/puppet$ cat manifests/a.pp
class { "a":
}
nkts@trololo:/tmp/puppet$ cat modules/a/manifests/init.pp
class a (
$foo = "default msg"
){
notify { "test: $foo":
}
}
nkts@trololo:/tmp/puppet$ rm data/common.yaml
nkts@trololo:/tmp/puppet$ puppet apply -t --modulepath=./modules/ --hiera_config=./hiera.conf manifests/a.pp
Notice: Compiled catalog for trololo.lan in environment production in 0.32 seconds
Info: Applying configuration version '1449108454'
Notice: test: default msg
Notice: /Stage[main]/A/Notify[test: default msg]/message: defined 'message' as 'test: default msg'
Notice: Applied catalog in 0.02 seconds
nkts@trololo:/tmp/puppet$