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


10

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

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

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


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

回答:


9

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

node "default" {
   include foo
}

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


+1でexternal_nodesに同意します
David Pashley

16

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

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

3

現時点で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}
    }
}

クイックアップデート-puppet-2.6.12-1.el5.noarchがEPELから利用可能になりました(ノード名の正規表現をサポート)。
プラスミド87
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.