ヒエラハッシュの多くのエントリを繰り返し処理しています。マニフェストにデフォルトを設定することで同じ重複する行を削除します。ensure
、groups
、managehome
など)、重複したキーと値のペアがhieraに存在する場合は、デフォルトがオーバーライドされます。パペット - マニフェストのデフォルトをハッシュの繰り返しに使用する場合、ヒエアにデフォルト値を設定します。
までに、私が試してみましたすべてがデフォルト値の取得に失敗しました。私はリソースを宣言する必要があると考えていますが、不確実です。
私は、ルックアップや他の方法で「default_values_hash」を設定しようとしたが、何もこれは私のマニフェストとhieraデータの(擬似)の例で反復し、--debug出力
にデフォルト値を渡すために表示されません。どんな指導も心から感謝しています。ありがとうございました。 Hieraで
class test (
Hash $testhash = lookup('test::hash', "merge" => 'hash'}),
){
$testhash.each |$key, $value| {
user { $key :
ensure => $value['ensure'],
name => $value['name'],
password => $value['password'],
groups => $value['groups'],
managehome => $value['managehome'],
}
}
}
include class test
:私はマニフェスト(あまりにも多くのデータ内のすべてのデータを保持する場合はそれがないものの、反復に渡しません(User
を大文字で)マニフェストで
test::hash:
'fred':
name: fred
password: somepassword
groups: wheel
managehome: true
'mary':
name: mary
password: otherpassword
'john':
name: john
password: anotherpassword
'harry':
設定リソースのデフォルトそれを行うために)。
すばやく詳細な返信いただきありがとうございます。私は両方のコードブロックをテストしましたが、残念ながらヒエラハッシュの最初のキーだけを処理しています(間違いはありません)。ヒエラにキー/ペアがなく、マニフェストのデフォルトをオーバーライドするためにヒエラに存在するキーがある(デフォルト値に一致する)ようにするために、私の投稿を少し編集しました。それ以上のガイダンスは誠実に感謝します。 – xit
@xitコードがハッシュ反復を失う可能性があるという疑いがありました。私は、機能を失うことなくハッシュ反復を保持する方法を考える必要があります。残念ながら、これは配列の繰り返しでのみ本質的に機能します。あなたのコメントの後半には、ラムダのデフォルト値でそれを行うことができます。それに対する回答を更新しています。 –
@xit私はちょうどあなたが上記で提供したmaryとjohnのハッシュで私のコードをテストし、それはmaryとjohnの両方を処理します。あなたのサンプルのハッシュが私のコードと組み合わされて、あなたが望む結果を生み出しているからです。 –