我有一个场景,其中有 5 个模板文件需要复制到 Puppet 代理机器。如果任何一个模板文件发生变化,我想通知 exec 资源。但 exec 资源只需调用一次。也就是说,如果 2 个或更多文件发生变化,则 exec 资源只需调用一次。我尝试谷歌搜索,但找不到实现相同目标的方法。有什么想法吗?
答案1
这是正常行为。
每个资源仅执行一次。
例如这里:
exec { 'foo':
command => '/bin/echo x >> /tmp/foo',
refreshonly => true,
}
file { '/tmp/a':
ensure => file,
notify => Exec['foo'],
}
file { '/tmp/b':
ensure => file,
notify => Exec['foo'],
}
exec
即使和都不存在,也只会/tmp/a
运行/tmp/b
一次 。
但也请注意,如果同时发生/tmp/a
并且/tmp/b
做存在(由于refreshonly => true
参数)。