木偶忽略模板文件的一部分

有没有办法忽略模板文件的一部分?

我有一个服务,它有一个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理具有权限和清除警告的用户。