在puppet中,您可以通过执行以下操作来chown/chmod单个文件:
file {
'/var/log/mylog/test.log':
ensure => 'present',
mode => '0644',
owner => 'me';
}
Run Code Online (Sandbox Code Playgroud)
两个问题:
ensure =>'present'将确保'/var/log/mylog/test.log'存在,如果它不存在则创建它.如果文件存在,我有什么方法可以让它做动作,如果文件不存在,不打扰创建/删除它,只是忽略它并继续.
假设我在/ var/log/mylog /下面有3个文件,我想在一个批处理中对它们chown/chmod,而不是在我的puppet代码中有3个文件资源部分.我可以做下面这样的事情(因为下面的代码不存在,现在是我的梦想^ _ ^):
files {
'/var/log/mylog/*.log':
ensure => 'present',
mode => '0644',
owner => 'me';
}
Run Code Online (Sandbox Code Playgroud)如果你想指定如果文件存在则采取给定的动作,如果文件不存在等,你当前没有选择(对我的知识)而不是使用exec带有creates+ onlyif或unless指令的资源.你可以使用例如(参见参考文档)
exec { "touch /var/log/mylog/test.log":
path => "/usr/bin:/usr/sbin:/bin",
user => "${yourmodule::params::user}",
group => "${yourmodule::params::group}",
creates => "/var/log/mylog/test.log",
unless => "test -f /var/log/mylog/test.log"
}
file { '/var/log/mylog/test.log':
ensure => 'present',
mode => "${${yourmodule::params::mode}",
owner => "${yourmodule::params::user}",
group => "${yourmodule::params::group}",
require => Exec["touch /var/log/mylog/test.log"]
}
Run Code Online (Sandbox Code Playgroud)不.再次,您将不得不使用exec资源.
| 归档时间: |
|
| 查看次数: |
10328 次 |
| 最近记录: |