使用Puppet创建目录并递归复制具有不同访问权限的文件
我希望创建/确保目录存在,并尽可能使用本机Puppet方法将许多文件递归复制到该目录中。所有文件的文件模式相同,但与目录不同 我正在CentOS 6.10上使用Puppet6 6.10.0版 此代码将创建/确保“我的目录”存在,并将所有文件复制到该目录,但将访问权限和所有权设置为完全相同使用Puppet创建目录并递归复制具有不同访问权限的文件,puppet,Puppet,我希望创建/确保目录存在,并尽可能使用本机Puppet方法将许多文件递归复制到该目录中。所有文件的文件模式相同,但与目录不同 我正在CentOS 6.10上使用Puppet6 6.10.0版 此代码将创建/确保“我的目录”存在,并将所有文件复制到该目录,但将访问权限和所有权设置为完全相同 file { "/opt/dir1": ensure => "directory", owner => "user1",
file { "/opt/dir1":
ensure => "directory",
owner => "user1",
group => "root",
mode => "0700",
recurse => true,
source => "puppet:///modules/mymodule/dir1",
}
我得到的是:
ls -la /opt/dir1"
drwx------ 2 user1 root 4096 Sep 23 20:31 .
drwxr-xr-x 7 user1 root 4096 Oct 6 15:20 ..
-rwx------ 1 user1 root 72 Oct 5 17:15 file1
我想要的是:
ls -la /opt/dir1"
drwx------ 2 user1 root 4096 Sep 23 20:31 .
drwxr-xr-x 7 user1 root 4096 Oct 6 15:20 ..
-rw-r--r-- 1 user1 root 72 Oct 5 17:15 file1
使用
递归时,Puppet文件
资源无法为apex目录及其文件设置不同的模式
你能用一个新的吗?使用archive
资源,您可以指定tar
文件作为源文件,权限将按照tar
文件中的权限设置。如果您能够管理源文件中的权限和模式,则可以使用此参数。注意,根据您的版本,您可能会收到不推荐使用的警告:
Warning: The `source_permissions` parameter is deprecated. Explicitly set `owner`, `group`, and `mode`.
file { "/opt/dir1":
ensure => "directory",
owner => "user1",
group => "root",
source_permissions => "use",
recurse => true,
source => "puppet:///modules/mymodule/dir1",
}
这将允许您在源中管理模式,但仍然覆盖所有者和组。您还可以删除上面的所有者和组参数,并在源中管理它们。但是,如果您有windows客户端和linux puppet master,我不确定这是如何工作的,或者主代理上的用户/组不匹配这对文件很有用,但目录需要是0700而不是0755,现在设置的目录没有“mode”参数。即使源目录有mode0700
?这有点尴尬,它确实可以按预期工作!昨天我测试这个的时候真是疯狂的一天。这是一个问题,但对我来说,我必须使主人的木偶,以便它可以被木偶看到。现在我不能像自己一样做出改变。不知道其他商店是如何开设的,这是另一天的问题。另一个警告是我在“source\u permissions”参数中得到的“deprecated”警告。总之,这确实回答了这个问题。