很抱歉,如果标题令人困惑。
我的一些nodes.pp定义包含:
node 'node.fqdn.blah' {
$prod = "false"
..
..
include my_service
}
在modules / my_service / manifests / init.pp中,我想陈述类似的内容:
..
..
..
file { '/usr/local/my_service/tools/credentials.py':
mode => '0755',
owner => 'tomcat',
group => 'tomcat',
... insert "if prod" clause ...
source => 'puppet:///modules/my_service/creds.py',
require => Package['my_service'],
notify => Service['tomcat7'],
}
..
..
..
这样,当我在登台节点上运行更新时,凭据不会被更改。
是否有木偶解决方案,或者我应该在非节点节点上使我的文件不可变?
由于
回应#1
感谢在nodes.pp上的抬头,这是我正在处理的环境。该文件由puppet更新,因为我控制它。我在生产环境中控制它,因为我经常更新密码。但是,在我的非prod环境中,不应触及此文件。我希望它继续更新(对于prod),但不是为其他envs。