トップ «前の日記(2013-02-10) 最新 次の日記(2013-02-13)» 編集

人徳ゼロ日記


2013-02-12

_ 注意: PuppetのResourceはHieraのAuto lookupできない

前回、 Puppet3.0の新機能Hiera auto-lookupの使い方 を紹介しましたが、注意点を一つ。

  • 「クラス」のノード適用にHieraのAuto lookupが使えるのですが、 「リソース(defineで提起する)」のノード適用には使えません。

考えてみれば、確かにclassはシングルトン(1ノードにインスタンス1個のみ)と言う制約があるので クラス名::パラメタ名で一意に値が決まりますが、 resourceだと複数インスタンスが入るのでclassと同じではダメです。

脱線ですが、classがシングルトンでresourceがマルチインスタンスと言うのは、 オブジェクト指向言語でのclassの印象からすると逆のイメージになり、非常に混乱します。 Puppetは、言語仕様的にオブジェクト指向言語っぽい雰囲気を醸し出しつつ 実は意味は異なる、と言う傾向にあるので、個人的にはあまり好みではありません。 まあ、間違っている訳ではないですがね。