如何向Puppet发送触发器?

时间:2017-09-21 11:54:58

标签: puppet

有没有向Puppet发送触发器以执行一系列任务?

该应用程序由Apache httpd提供。每隔一段时间,开发人员就会对产品进行更改,这反过来要求我们重新启动Apache。但是,我无法弄清楚如何向Puppet发送请求,而Puppet又会重启Apache。

基本上,与每隔30分钟执行的Puppet运行的“串行”或同步流相比,这更像是一个异步请求。

对此有何想法?

1 个答案:

答案 0 :(得分:1)

请记住,puppet不是任务管理员。 puppet是州长。

  • 它无法启动或重启httpd;相反,它确保httpd正在运行。
  • 它不会上传文件,而是验证文件是否已安装且是最新的。

区别很重要。

那说......

puppet是否也在管理开发人员所做的更改?

如果是这样,那么你应该能够创建一个木偶规则

exec { httpdrestart :
    command => "/sbin/service httpd restart",
    refreshonly => true,
}

然后附加到管理开发人员更改的puppet规则

file { '/var/www/html/mywebproject.html':
  ensure => present,
  source => 'puppet:///modules/mymodule/mywebproject.html',
  notify => Exec["httpdrestart"]
}

安装/更新/更改此文件后,需要重新启动httpd

如果您只是希望puppet重新启动httpd简单,因为您要求它,那么您需要使用像ansible这样的程序,它更像是一个实际的任务管理器,或者使用某种程序inotify要查看某个文件是否已更改,因此必须重新启动httpd

(请注意 - 但我对名称之外的inotify一无所知。)