したがって、非常に具体的なhiera YAMLファイルで、「env_name」などの変数を定義するとします。
env_name: "dev-unstable"
次に、より一般的なhieraファイルで、その変数を文字列に補間します。
server_name: "service-%{env_name}。%{:: domain}"
私のテストは、階層の他の場所からのhiera変数が一般的なケースで補間に利用できないことを意味するようです。残念ながら本当ですか?
Hiera内でHieraルックアップ関数を使用できます。ここにドキュメント: https://docs.puppetlabs.com/hiera/1/variables.html#using-lookup-functions
あなたのケースではあなたが使うでしょう:
server_name: "service-%{hiera('env_name')}.%{::domain}"
これは優先ルックアップであり、キーが見つかった最も高い(最も具体的な)階層レベルからキーenv_name
の値を取得します。
これにはHiera 1.3以降が必要です。
Puppet 5で使用されるHiera 5の場合、次の構文を使用します。
_server_name: "service-%{lookup('env_name')}.%{::domain}"
_
...%{lookup('env_name')}
は、他のhieraキーからデータを取得する部分です。
( ソース )