Puppetmaster´s nodes.ppでワイルドカードホストを定義する方法はありますか
1つのドメイン内のすべてのホストが一連のクラスを受け取るようにするには、次のようにします。
# nodes.pp
#
node basenode {
include admina, adminb, admic
}
node "*.acme.com" {
include adminc
}
この方法ではありません。すべての署名済みクライアントに適用される「デフォルト」ノードを作成できます。
node "default" {
include foo
}
ただし、デフォルトは1つだけです。説明した機能を複製したい場合は、external_nodesメソッドの分類を使用できます。基本的に、クライアントが接続したときに有効なyamlを返すスクリプトを記述します。そのスクリプトは、とにかくそれを実行し、fqdnをチェックし、dbにクエリを実行し、ldapをヒットするなどを行うことができます。
Puppet 0.25では正規表現が使用できるようになったため、必要なものが可能になります。
node /^(foo|bar)\.example\.com$/ {
include blah
}
現時点で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}
}
}