docs.puppetlabs.comのhiera のドキュメントは、データを記述するためにpuppet構文を使用できるという印象を与えているようです。または、おそらく将来的には可能になるでしょう。見る: Coming soon
。
この機能はpuppetのリリースバージョンに存在し、文書化されていないだけですか、それともまだ開発中ですか?この機能が存在する場合、実際にこれを使用する方法の例を誰かが持っていますか?
私のシステムに puppet_backend.rb ファイルが存在すると、これはpuppetmasterパッケージの一部でしたが、この機能は存在するものの、文書化されていないことがわかります。だから私は実際にこれを使用する方法を理解しようとしています。
この投稿 puppet-usersメーリングリストの基本的な使用法について説明しています。
階層を使用して、より完全な例で書き直しました。
このようなhiera.yaml
が与えられた場合:
:backends:
- puppet
:puppet:
:datasource: data
:hierarchy:
- %{osfamily}::%{operatingsystem}::%{architecture}
- %{osfamily}::%{operatingsystem}
- %{osfamily}
- global
そして、モジュール内に単純なクラスが与えられます:
class foo::bar {
$baz = hiera('baz')
}
バックエンドは、変数$baz
を含むクラスを次の順序で検索します。
data::RedHat::CentOS::x86_64
data::RedHat::CentOS
data::RedHat
data::global
foo::bar::data
foo::data
デフォルトのデータソース名はdata
ですが、これはカスタマイズできます。 klaatu
を指定すると、次のように検索されます。
klaatu::RedHat::CentOS::x86_64
klaatu::RedHat::CentOS
klaatu::RedHat
klaatu::global
foo::bar::klaatu
foo::klaatu
最後の2つは、階層に関係なく、常に%{calling_class}::%{datasource}
および%{calling_module}::%{datasource}
の形式で追加されているように見えます。
これらの階層とyamlバックエンドで使用できるファクトの種類には制限があるようです。たとえば、クラス名にはドットが許可されていないため、%{clientcert}
は使用できません。