让一个班级在 Puppet 中部署一个模块?

让一个班级在 Puppet 中部署一个模块?

我读过很多不同的资料,但就是无法决定将模块部署到节点/主机的最佳方式,也无法让其中一些发挥作用。我已经在模块中创建了所有内容。

话虽如此,当我测试时,我正在像这样部署模块;

node 'basetesting' {
        include fail2ban
        include nrpe
}

node 'test-dev' inherits 'basetesting' {
}

但是,我创建了很多模块,并意识到我的服务器会根据其角色(应用程序、Web 等)而有所不同。它们都有一组基本要求。所以我本质上希望一个节点有基础。然后有它们所需的模块,我相信它们看起来会像这样;

node 'basetesting' {
        include fail2ban
        include nrpe
}

node 'test-dev' inherits 'basetesting' {
            include httpd
}

然后我意识到……我必须为每个节点都做一个定义。我想这还不错,但我想如果你有 50 多个服务器,这可能会变成一个相当长的 nodes.pp 文件。

有一个更好的方法吗?

答案1

我使用的解决方案是对节点名称进行正则表达式处理:

节点“www\d.domain.com”继承“webserver”{}

这样,我的 www1、www2、www3 等所有服务器都可以正确设置。使用描述性的服务器名称还可以让新用户更容易理解整个系统的工作原理。

相关内容