web-dev-qa-db-ja.com

puppet-nodes.ppでワイルドカードホストを定義する

Puppetmaster´s nodes.ppでワイルドカードホストを定義する方法はありますか

1つのドメイン内のすべてのホストが一連のクラスを受け取るようにするには、次のようにします。

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


node "*.acme.com" {
    include adminc
    }
10
lepole

この方法ではありません。すべての署名済みクライアントに適用される「デフォルト」ノードを作成できます。

node "default" {
   include foo
}

ただし、デフォルトは1つだけです。説明した機能を複製したい場合は、external_nodesメソッドの分類を使用できます。基本的に、クライアントが接続したときに有効なyamlを返すスクリプトを記述します。そのスクリプトは、とにかくそれを実行し、fqdnをチェックし、dbにクエリを実行し、ldapをヒットするなどを行うことができます。

9
Stick

Puppet 0.25では正規表現が使用できるようになったため、必要なものが可能になります。

node /^(foo|bar)\.example\.com$/ {
include blah
}
16
Pheezy

現時点で0.25を出荷しているディストリビューションはほとんどないため、EPELリポジトリから2.24.8を持っている私のCentos5では、wn10.example.comのようなホスト名を持つワーカーノードに対して次のようなことをしなければなりませんでした:

node  default {
    $node_type = regsubst($hostname, '^([a-z]+).*$', '\1')
    case $node_type{
        wn: {include worker_node}
        default: {include generic_node}
    }
}
3