我想做的很简单:
1.
Copy /source/file
to /target/file
。我使用以下方法实现此目的:
file { 'my_file_copy':
ensure => file,
source => 'file:/source/file',
path => "/target/file",
}
2.
但是,如果文件/source/file
不存在,我不希望它执行此任务。
我真的很挣扎于这个逻辑。我尝试了下面的解决方案,但它在木偶运行期间引发异常。
puppet:如果一个文件存在,则复制另一个文件 https://stackoverflow.com/questions/31463506/puppet-if-one-file-exists-then-copy-another-file-over
有更好的方法来完成这项任务吗?
理想情况下,我想只使用“file”并避免使用“exec”。但在这一点上我会解决一个解决方案!
因为 Puppet 是一种声明性语言,仅声明最终状态,所以命令式逻辑(例如您所描述的 - if A, do X - 通常很难表达)。
就我个人而言,我会尝试简单地避免当且仅当文件 A 存在时复制文件 B 的要求。通常有更好的方法。
但是,如果需要保留该要求,那么在这里使用 Exec 对我来说听起来是一个不错的选择。
exec { 'my_file_copy':
command => 'cp /source/file /target/file',
onlyif => 'test -e /source/file',
creates => '/target/file',
path => '/bin',
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)