Puppet:对于多个文件资源声明仅通知 exec 一次

Puppet:对于多个文件资源声明仅通知 exec 一次

我有一个场景,其中有 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参数)。

相关内容