web-dev-qa-db-ja.com

puppet構文を使用する際のhieraデータソース?

docs.puppetlabs.comのhiera のドキュメントは、データを記述するためにpuppet構文を使用できるという印象を与えているようです。または、おそらく将来的には可能になるでしょう。見る: Coming soon

この機能はpuppetのリリースバージョンに存在し、文書化されていないだけですか、それともまだ開発中ですか?この機能が存在する場合、実際にこれを使用する方法の例を誰かが持っていますか?

私のシステムに puppet_backend.rb ファイルが存在すると、これはpuppetmasterパッケージの一部でしたが、この機能は存在するものの、文書化されていないことがわかります。だから私は実際にこれを使用する方法を理解しようとしています。

5
Zoredache

この投稿 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}は使用できません。

2
Cakemox