Puppet 相同类型的傀儡服务器

Puppet 相同类型的傀儡服务器,puppet,sysadmin,Puppet,Sysadmin,在服务器/代理模式下工作时,我有一个关于Puppet的最佳实践问题 我已经使用manifest/sites.pp配置创建了一个工作解决方案,该配置使用代理的主机名标识配置 例如: node 'puppetagent.somedomain.com' { include my_module notify { 'agent configuration applied': } } 这对于配置单个节点非常有效,但如果我有一个场景,其中我有多个应用程序服

在服务器/代理模式下工作时,我有一个关于Puppet的最佳实践问题

我已经使用manifest/sites.pp配置创建了一个工作解决方案,该配置使用代理的主机名标识配置

例如:

node 'puppetagent.somedomain.com' {

        include my_module

        notify { 'agent configuration applied':
        }
}
这对于配置单个节点非常有效,但如果我有一个场景,其中我有多个应用程序服务器,所有服务器都具有不同的主机名,但所有服务器都需要相同的配置,该怎么办

添加多个节点条目、以逗号分隔的主机名列表或正则表达式并不是这样做的“正确”方法

还有别的办法吗?你能定义节点“类型”吗?社区认为最好的做法是什么?


非常感谢

正则表达式可能没那么糟糕,但我想目前的趋势是使用

你可以做这样肮脏的事:

$roles = { 'webserver' => [ 'server1', 'server2', 'server3' ]
         , 'smtp'      => [ 'gw1', 'gw2' ]
         }
node default {
    $roles . filter |$k,$v| { $hostname in $v }
           . each |$k,$v| { hiera_include($k) }
}

我建议在这里看一下“角色和简介”的概念:

您可以有多个节点,所有节点都包含相同的配置,其中“概要文件”包含一个或多个“角色”


至于定义具有相同配置或包含“角色”的“概要文件”的多个节点,我建议使用
hiera\u include
如前面提到的@bartavelle。除了使用公共环境变量来标识节点,而不是使用正则表达式。

如果所有服务器都具有相同的配置,则继承或hieara层次结构是实现这一点的最简单方法

一旦您需要维护一组较大的系统,其中某些节点具有诸如“web服务器”或“数据库服务器”之类的类型,配置就会发生分歧,单一继承模型并不完全足够


你可以在那些地方使用构图。更多详情,请访问顶部。

链接不错,但您的解释是反向的。在“角色和配置文件”范例中,每个角色包括一个或多个配置文件。每个节点仅分配一个角色。