我几乎没有足够的 Puppet 来问这个问题。
我想我理解特定节点的配置将由一组模块组成,并带有一些特定于节点的粘合剂。从教程和文档中可以看出,特定于节点的资源将位于 manifests/site.pp 文件中的node /nodename/ { }
资源中,其中包含相关类的“包含”,以及用于进行特定于节点的配置更改的资源。
现在输入外部节点分类器 (ENC),例如 theForeman。
根据我对 ENC 文档的阅读,node /nodename/ { }
我可以在 site.pp 中使用资源,但我不能声明任何新资源。基本上不推荐。生成的 YAML 只是包含和变量设置。
那么,对于特定于给定节点或主机组的配置(集成所有包含类的布线)做了什么?
你最终会创建一个特定于节点的类吗?您将该类放在特定于节点的模块中的什么位置?或者您是否为您的站点特定配置制作了一个包罗万象的模块,其中包含可以分配给特定节点的类?
一种方法在Designing Puppet – Roles and Profiles中表达。基本原则如下:
我假设您告诉工头从 puppet master 导入,如果是这样,我建议您像这样设置您的 puppet 目录:
然后,您将在 site.pp 文件中包含这一行:
然后,在 default.pp 创建你的基础服务器:
然后在节点下的另一个文件中,比如 web.pp,您可以包含它,然后为所有 Web 服务器设置指令,如下所示:
您甚至可以像在这个 db.pp 文件中那样链接继承: