同じクラス/モジュール/ whatevereveritisが複数回


9

人形は私を憎むに違いない。私は何時間もドキュメントを読んでいますが、それでも次のことを達成することができません:

  • 変数が含まれているクラスまたはモジュール(またはその名前)(パラメーター化されたクラス?)
  • このクラスは、単一のホストに複数回含まれます。

疑似コードでは、次のようになります。

# The class
classorwhatever myclass ($value) {
    notify { "$value world" }
}

# In the node definition
node whatever {
    myclass("Hello")
    myclass("Goodbye")
}

馬鹿げていると思っても面白くない。私はそれが実行可能でなければならないことを知っています。しかし、どうやって?:(


あなたはこれを読んでいますか?docs.puppetlabs.com/learning/modules2.html。あなたのサーバー/クライアントにはどのバージョンのパペットがありますか?
Zoredache 2012年

@Zoredache 2.6.12(サーバーとクライアントの両方)
fge

回答:


13

パラメーター化されたクラスは1回しか使用できません。データ定義を変化させながら、関数でノードを数回ヒットすることを計画している場合は、方法です。

class apache ( $module ) {
  if module = ssl then and so on
}

define apache::vhost ($priority=99) {
  file { "apache/vhost.d/${name}":
    content => template("apache/vhosts/$name.erb"),
  }
}

node webserver {
  class { 'apache': module => 'ssl', }
  apache::vhost { 'www': priority => 00, }
  apache::vhost { 'test': priority => 99, } 
}

優秀な。fwiw #puppet on freenodeとメールリストは非常にアクティブで、このようなことを徹底的にカバーしています。Puppetを使い始めたばかりの場合は、両方のリソースを手元に置いておくことをお勧めします。
カシャニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.