特定のフラグに従ってhieraファイルをロードしようとしています。
Hierahierarachy構成は
:hierarchy:
- "%{environment}/%{::fqdn}"
- "%{environment}/%{nodetype}"
- "%{environment}/%{calling_module}"
- "%{environment}"
- "common/%{calling_module}"
- "common"
実際、「ノードタイプ」レベルでいくつかの構成を因数分解したいと考えています。目標は、ファイル内に同じhiera「ブロック」を配置しないようにすることです。
しかし、代わりに:の一般的な部分
その後、すべてのサーバーはfqdnyamlファイルを使用して独自の特定の値を取得します。 (この部分は大丈夫です)
現在、hieraコンテキストに「ノードタイプ」データを提供する方法がわかりません。
私はそれを次のようにメインマニフェストファイルに入れようとしました(ええ、私はドキュメントを読んで、それが悪い考えだと知っていますが、絶望の試みがあっても、とにかく機能しません)
node 'nfs1.example.com', 'nfs2.example.com' {
$nodetype= 'nfs-server'
ただし、ファイルenvironment/test/nfs-server.yamlはhieraによってロードされません。
カスタムファクトも使用しようとしましたが、カスタムファクトを使用しています
modules/hosts/facts.d/Host-fact-test.txt
ファイルはエージェントのホストに送信されますが、ここでも、hieraは専用ファイルを使用しません。
Notice: /File[/var/lib/puppet/facts.d/Host-fact-test.txt]/ensure: defined content as '{md5}d7492faae1bfe55f65f9958a7a5f6df9'
notify puppetコマンドを使用すると、値は問題ありません
if $nodetype== 'nfs-server' {
notify {"Running with \$nodetype ${nodetype} ID defined":
withpath => true,
}
}
結果:
Notice: /Stage[main]/attemps/Notify[Running with $nodetype nfs-server ID defined]/message: Running with $nodetype nfs-server ID defined
StackはUbuntu14のPuppetオープンソースであるため、バージョンは次のとおりです。
それを機能させる(または同様の動作を実現する)ためのアイデアや提案はありますか?
Puppetマスタープロセスは通常、/etc/hiera.yaml
の構成を使用しないため、混乱する可能性があります。 Puppet 3.x
の場合、通常は/etc/puppet/hiera.yaml
です。
(rootとして)使用していることを確認できます
puppet master --configprint hiera_config
マスターマシン上。