web-dev-qa-db-ja.com

人形のパラメータ化されたクラスとhiera

RedHat Enterprise Linux 6のpuppetlabsリポジトリからpuppetオープンソース3.1.0を実行しており、hiera1.1.2を使用しています。 hieraがパラメーター化されたクラスでどのように機能するかについて、バグまたは根本的な誤解のように思われる問題に遭遇しています。パラメータ化されたサブクラスをデフォルト値で設定しました。特定のノードで値を別の値に設定しようとしています。ノードはクラスのないメインマニフェストの1つで宣言されており、そのマニフェストにhiera_include( 'classes')があります。 「my_firewall」クラスの「activate」パラメータの値を変更しようとしています。 hieraノードファイルが次のようになっている場合:

---
classes:
  - puppetmaster
rel::auth_users: ['puppet']
rel::my_firewall::activate: false 

rel :: my_firewallはロードされません(「activate」の2つのブール値について通知しましたが、表示されません)。 rel :: auth_usersパラメーターは正常に渡されます。 relクラスは、hieraの親で定義されています。

これに変更すると:

---
classes:
  - puppetmaster
  - rel::my_firewall
rel::auth_users: ['puppet']
rel::my_firewall::activate: false 

Rel :: my_firewallクラスをロードしますが、false値ではなくデフォルト値を使用します。

健全性チェックとして、ノードマニフェストで通常の方法で物事を定義すると、物事は正常に機能します。

node 'puppet.my.domain' {
  class { 'rel::my_firewall':
    activate => false,
  }
}

クラスを適切に宣言し、activateをfalseに設定します。

私は間違ったことをしていますか?私の構文はオフですか?どんな助けでも素晴らしいでしょう。

1
Nat Baldwin

構文は良さそうです。 bug 17474 のように見えます-false値が正しくロードされていません。

3.2がリリースされるまでの回避策として、文字列を使用しますか?

2
Shane Madden