如何使用 Puppet 复制包含文件的目录
How do I copy a directory as well containing files with Puppet
我想使用 Puppet 复制目录及其文件。
该目录以及大多数 files/subdirectories 在复制时已经存在。
副本正在为新文件工作并删除不在源中的文件,但现有文件没有更新。
例如,dir/index.html
如果不存在则创建,但即使源包含文件的更新版本也不会更新。
正在寻求有关如何告诉 puppet copy/overwrite 目录中所有文件的帮助。不确定我是否应该使用 force
之类的东西来实现这一目标。
file { "${directory}":
ensure => directory,
owner => $user,
group => "$user",
mode => '0755',
recurse => true,
source => "puppet:///modules/role/${directory}",
} ->
提前致谢
根据 documentation for the file
resource,您的配置是正确的,应该替换与源不匹配的文件。此行为是通过将 recurse
设置为 true
.
来配置的
我注意到 force
选项仅适用于目录。它是应用于文件的 replace
属性。鉴于文件没有被替换,是否有可能 replace => false
已被设置为清单中某处文件资源的默认属性?默认设置看起来像
File {
replace => false,
}
正如 John 在评论中提到的,您可以通过在文件资源中显式设置 replace
来覆盖默认值:
file { $directory:
ensure => directory,
owner => $user,
group => $user,
mode => '0755',
recurse => true,
replace => true,
source => "puppet:///modules/role/${directory}",
}
我想使用 Puppet 复制目录及其文件。 该目录以及大多数 files/subdirectories 在复制时已经存在。
副本正在为新文件工作并删除不在源中的文件,但现有文件没有更新。
例如,dir/index.html
如果不存在则创建,但即使源包含文件的更新版本也不会更新。
正在寻求有关如何告诉 puppet copy/overwrite 目录中所有文件的帮助。不确定我是否应该使用 force
之类的东西来实现这一目标。
file { "${directory}":
ensure => directory,
owner => $user,
group => "$user",
mode => '0755',
recurse => true,
source => "puppet:///modules/role/${directory}",
} ->
提前致谢
根据 documentation for the file
resource,您的配置是正确的,应该替换与源不匹配的文件。此行为是通过将 recurse
设置为 true
.
我注意到 force
选项仅适用于目录。它是应用于文件的 replace
属性。鉴于文件没有被替换,是否有可能 replace => false
已被设置为清单中某处文件资源的默认属性?默认设置看起来像
File {
replace => false,
}
正如 John 在评论中提到的,您可以通过在文件资源中显式设置 replace
来覆盖默认值:
file { $directory:
ensure => directory,
owner => $user,
group => $user,
mode => '0755',
recurse => true,
replace => true,
source => "puppet:///modules/role/${directory}",
}