【发布时间】:2015-03-11 08:14:33
【问题描述】:
我想用 puppet 管理 jenkins-service 的 config.xml 文件。问题是,如果 Puppet 更改 config.xml 文件并重新启动 jenkins 服务,则 config.xml 文件会被当前加载的 jenkins 配置覆盖,并且 puppet 所做的更改会丢失。
这就是我现在拥有的:
file { '/var/lib/jenkins/config.xml':
source => 'puppet:///modules/jenkins/config.xml',
owner => jenkins,
group => jenkins,
mode => '0644'
}
service { 'jenkins':
ensure => running,
enable => true,
subscribe => File['/var/lib/jenkins/config.xml']
}
我的方法是停止 jenkins 服务,而不是复制 config.xml 并重新启动服务......当然,每次 puppet 运行时不应停止并重新启动服务,但前提是 config.xml 更改。我不知道如何用 puppet 做到这一点,即使它是可能的。有什么想法吗?
任何帮助将不胜感激
【问题讨论】:
-
在这种情况下,将文件的所有者设置为 root/root 以阻止 Jenkins 更改它。
-
感谢@BMW 的回复。我尝试了您的建议,但它不起作用,因为 puppet 以 root 身份启动 jenkins 服务,因此 jenkins 服务可以将 config.xml 文件的所有者更改回 jenkins:jenkins。