问:阻止Puppet收集通知

时间:2018-02-13 16:41:44

标签: puppet notify

我有以下两个木偶代码:

x.pp

    class x (
Hash $something = undef,  
)
{ 
  if ($something) {
    create_resources("profile::aem::install_packages", $sources, $defaults)
  }
}

y.pp

    define x::y( 
  String  $xx = undef,  
)
{
   file { "$name" :
    ensure      => $ensure,
    ....
    } ~>

    service['some-service']
}

'y'定义,由'x'类调用3次,因为$ something变量是一个散列。我的通知的目标是在文件/包存在后重新启动服务。但是由于木偶的行为,它会累积所有的通知并重新启动服务一次,但在我的情况下,我需要它在每次发生的更改后重新启动服务。有没有办法阻止木偶行为累积通知并重启服务例如3次而不是1?

非常感谢您的时间。

亲切的问候!

1 个答案:

答案 0 :(得分:3)

Puppet是关于写出一个声明状态,你的系统应该在其中,而不是一个势在必行的'做到这一点' ..

Ben Ford的博客文章中描述了这一点的本质 - https://puppet.com/blog/puppet%E2%80%99s-declarative-language-modeling-instead-of-scripting

没有一种方法可以让多个服务重新启动'由于puppet的模型是信号管理每个资源并收集通知,因此在单个木偶运行中提供相同的服务。

通过指定不同的服务资源标题可能会有一些方法,同时指定要在不同参数中管理的实际服务,但我不推荐它。

https://stackoverflow.com/a/11107074/3543867

似乎有类似的答案