【发布时间】:2015-07-16 20:02:51
【问题描述】:
我正在尝试弄清楚如何使我的 puppet 模块工作,因此我需要测试客户端上是否存在文件,如果存在,则复制另一个文件。如果文件不存在,则什么也不做。我似乎无法让它工作。这是我的模块:
类 web-logs::config {
# PATH TO LOG FILES
$passenger='/var/tmp/puppet_test/passenger'
# PATH TO LOGROTATE CONFIGS
$passenger_logrotate='/var/tmp/puppet_test/logrotate.d/passenger'
exec { 'test1':
onlyif => "test -f $passenger",
path => ['/usr/bin','/usr/sbin','/bin','/sbin'],
refreshonly => true,
} ~>
exec { 'test2':
require => Class['web-logs::passenger']
}
Class['web-logs::passenger'] 看起来像这样:
class web-logs::passenger {
file { 'passenger':
path => '/var/tmp/puppet_test/logrotate.d/passenger',
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet://${puppetserver}/modules/web-logs/passenger.conf",
}
}
任何帮助将不胜感激!
【问题讨论】:
-
一个干净的解决方案将涉及一个自定义事实。但我真的很好奇这个要求是如何产生的。不管以前的状态如何,让 Puppet 创建文件会简单得多。