到目前为止,我已经将所有内容都放在 site.pp 中。这会导致文件变得又长又混乱。
我应该这样做,还是应该将内容从 site.pp 移到外部文件中,然后以某种方式从 site.pp 中引用这些文件?
答案1
site.pp 中的内容很少,通常有一个更好、更易于管理的地方。
- 各个资源(文件、服务、包、cron 条目等)都应该移动到您正在管理的每个组件/服务的类中。尝试将其尽可能分解为逻辑组件,例如
apache
类mysql
而不是lamp
角色类。 (文档:语言:类) - 类应该移动到模块中。模块是一种包含相关类(例如
apache::service
使用)的方法apache
,为 Puppet 提供了一种无需加载每个文件即可有效查找类的方法,并包含相关文件和模板。然后,您的 Apache 类可能位于/etc/puppetlabs/code/environments/production/modules/apache/manifests/init.pp
或类似的位置。 (文档:模块基础知识) - 节点定义和类参数可以移至 Hiera 或节点分类器 (ENC) 中。使用 Hiera,您可能会使用
hiera_include
(文档:使用 Hiera 将类分配给节点)将类添加到节点,并使用常规 Hiera 数据来存储类参数(文档:自动参数查找)。 ENC 是外部脚本,可以查询您已有的任何数据源,或者由其他应用程序提供,例如领班。 - 资源默认值可能仍保留在 site.pp 中以应用于每个节点和类。