我正在使用 Puppet Dashboard 作为我的 ENC,但我不确定如何引用或使用/etc/puppet/manifests/site.pp
.
我在仪表板中定义了两个组:CentOS6
和SLES11
。如果我想包含组中CentOS6
的某个模块列表和组中的某个模块列表,我的 site.pp 应该是什么样子SLES11
?
我正在尝试做这样的事情:
# /etc/puppet/manifests/site.pp
node basenode {
include hosts
include ssh::server
include ssh::client
include authentication
include sudo
include syslog
include mail
}
node 'CentOS6' inherits basenode {
include profile
}
node 'SLES11' inherits basenode {
include usrmounts
}
我的模块中有特定于操作系统的案例语句,但有些模块仅适用于特定发行版。所以我想我有两个问题:
- 这是以特定于操作系统的方式应用模块/资源的最佳方式吗?还是以上内容让你想吐?
- 不管#1,我仍然很好奇如何在我的清单中从仪表板引用类、组和节点。我已阅读外部节点文档,但我没有看到它们与清单的对应关系。
谢谢大家。
使用外部节点分类器,您走在正确的轨道上。全神贯注有点困难,但是一旦开始工作,您将永远不会回头,我不建议您足够强烈地去做。当我遇到麻烦时,我去了 puppet IRC 房间,他们帮助我开始工作。
根据操作系统应用不同的模块是可以的。我使用 BSD 和 RHEL 运行一个 300 多个节点的环境,我们做到了。我们没有将操作系统作为一个节点,而是将其作为自己的类,因为 . 因此,我们让 ENC 传回类似这样的内容,而不是“节点操作系统继承基节点”:
...ETC
你如何做取决于你希望继承如何工作,如果你想根据操作系统修改 basenode 中的内容,那么让操作系统继承 basenode 是正确的方法。
TLDR,你在做什么是好的,看看 ENC 的,因为它们让生活更轻松。
编辑:2。我不使用仪表板,所以我不知道。
好的,我明白这是怎么回事了。
site.pp
如果您将仪表板设置为您的外部节点分类器 (ENC) ,则Puppet Dashboard 将替换. 好吧,这并不完全正确,因为您可以同时使用两者:据我了解,仪表板类= 您的人偶模块的名称。您可以创建组来将类组合在一起以应用于一组节点。我已经用我所有的 CentOS 6 服务器建立了一个 CentOS6 组,并且根据我原来问题中的旧 site.pp,它包含我希望我的 CentOS 6 服务器在其目录中应用的所有类(模块)。向组中添加节点和类都可以通过仪表板完成。
另一个例子:
site.pp
:将 site.pp 转换为 Puppet Dashboard(截图):