我目前正在开发一个配置文件,通过确保服务和用户被禁用来锁定服务器。例如,Apache。
当另一个配置文件想要管理资源时,就会出现问题,因为那时我将拥有两个 Service[apache] 资源。
现在我可以使用类似 define 的东西,但我更喜欢的方法是让 profile::apache 与 profile::lockdown 对话并告诉它不要管 apache。
答案1
我认为您需要使用 hiera 来存档您想要的内容。
class profiles::apache {
class { '::apache': }
}
现在,如果我的类profiles::apache
开始用于 1000 个节点,并且我想在某个特定服务器中停止服务,那么在 hiera 中我可以使用类似这样的方法。
hiera 3 配置示例 hiera.yaml
---
:backends:
- yaml
- json
:yaml:
:datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:json:
:datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:hierarchy:
- "nodes/%{::trusted.certname}"
- "virtual/%{::virtual}"
- "common"
现在/etc/puppetlabs/code/environments/production/hieradata/nodes/servername.domain.local.yaml
插入这个apache::service_ensure: stopped
使用 hiera,你可以通过节点或其他东西来操纵类的参数