这里有点像 Puppet 新手。我试图以递归方式清除/var/www 下的所有文件和目录,除了保留一个文件 (/var/www/html/appicon.ico)。这是我的代码:
file {'/var/www':
ensure => directory,
recurse => true,
purge => true,
force => true,
require => Package['httpd'],
subscribe => Package['httpd']
} ->
file {'/var/www/html':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755'
} ->
file {'/var/www/html/appicon.ico':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
content => ''
}
该代码似乎确实清除了所有文件和目录,但/var/www/html 下的其他文件除外。有什么想法我在这里做错了什么或如何正确完成吗?
最佳答案
您还需要在 html 目录上设置清除,即:
file {'/var/www':
ensure => directory,
recurse => true,
purge => true,
force => true,
require => Package['httpd'],
subscribe => Package['httpd'],
} ->
file {'/var/www/html':
ensure => directory,
recurse => true, # note here
purge => true, #
owner => 'root',
group => 'root',
mode => '0755'
} ->
file {'/var/www/html/appicon.ico':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
content => ''
}
在 Puppet list 中明确包含文件/目录“保护”它不被其父目录上设置的 purge => true, recurse => true
清除。
关于linux - Puppet - 如何清除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52502910/