puppet - 在 nodes.pp 中定义通配符主机

lep*_*ole 10 linux puppet

有没有办法在 puppetmaster 的 nodes.pp 中定义通配符主机

说我希望一个域中的所有主机都接收一组类,我可以执行以下操作:

# nodes.pp
#

node basenode {
  include  admina, adminb, admic
  }


node "*.acme.com" {
    include adminc
    }
Run Code Online (Sandbox Code Playgroud)

Phe*_*ezy 16

现在可以在 Puppet 0.25 中使用正则表达式,所以你想要的是可能的:

node /^(foo|bar)\.example\.com$/ {
include blah
}
Run Code Online (Sandbox Code Playgroud)


小智 9

不是这样。您可以创建一个适用于任何已签名客户端的“默认”节点。

node "default" {
   include foo
}
Run Code Online (Sandbox Code Playgroud)

但是您只能有 1 个默认值。如果您想复制您描述的功能,您可以使用 external_nodes 分类方法。基本上,您编写一个脚本,在客户端连接时返回有效的 yaml。该脚本可以随心所欲地执行此操作,检查 fqdn,查询 db,点击 ldap 等。