有没有办法忽略模板文件的一部分?
我有一个服务,它有一个configuration文件,每次服务启动它写入configuration文件中的开始时间。 这使傀儡检测到一个变化,因为我有它通知服务将重新启动服务。 我刚开始不想让傀儡重新启动服务。
那么有没有办法让木偶忽略模板文件的一部分?
我不认为这是可能的,puppet计算文件的md5来检查文件的变化。 是否可以将开始时间写入另一个文件?
我的解决scheme类似于Zoredache的,但略有不同,因为您不需要智能脚本来进行比较。
假设你的configuration文件是/etc/my_application.conf ,看起来像这样:
start_time=<some value set by application on start-up> option1=VALUE ...
在puppet中,将文件添加到文件/您的configuration文件,如下所示:
start_time=DummyValue option1=VALUE ...
然后,使用将文件部署到备用位置的清单,如果存在更改,则触发一个副本,然后触发该服务,如下所示:
file { '/etc/my_application.staging.conf': ensure => present, source => 'puppet:///modules/my_application/my_application.conf', owner => ... notify => Exec['install-my_application.conf'], } exec { 'install-my_application.conf': refreshonly => true, command => '/bin/cp /etc/my_application.staging.conf /etc/my_application.conf', notify => Service['my_application'], } service { 'my_application': ... }
这使您可以重新启动新的configuration更改,但是如果在本地修改my_application.conf, 将不会重新启动服务。 这不是一个完美的解决scheme,因为它不能保存本地修改,但希望您可以在configuration文件的顶部pipe理具有权限和清除警告的用户。