在木偶中,我有以下两个班级:
class zabbix-agent {
package { 'zabbix-agent': }
->
service { 'zabbix-agent':
ensure => running
}
}
class zabbix-agent-cassandra {
include zabbix-agent
Class['zabbix-agent']
->
file { '/etc/zabbix/zabbix_agent.conf.d/cassandra.conf':
}
~>
Service['zabbix-agent']
}这看起来很不错,因为它允许从任何类向/etc/zabbix/zabbix_agent.conf.d/添加新的配置文件,并在执行此操作时重新启动zabbix-agent。
然而,这有一个依赖循环:
Service[zabbix-agent] => Class[Zabbix-agent] => File[/etc/zabbix/zabbix_agentd.conf.d/cassandra.conf] => Service[zabbix-agent]有没有办法避免依赖循环?
发布于 2015-03-25 21:41:41
你是在告诉木偶
这是有问题的,因为Puppet只会接触每个资源一次。
最好的方法可能是为您的zabbix模块引入更多的结构。
class zabbix::agent {
include zabbix::package
include zabbix::service
Class['zabbix::package'] -> Class['zabbix::service']
}这允许您只需
Class['zabbix::package'] -> File[...] ~> Class['zabbix::service']它是DRYer,在您的特定情况下,它避免了循环依赖。
https://stackoverflow.com/questions/29255191
复制相似问题