我试图确保一个目录存在一个安装,然后也更新该安装发生后,该目录的权限。 我收到以下错误:
err: Failed to apply catalog: Cannot alias File[pre_eos_mount] to ["/var/tmp/eos"] at /etc/puppet/modules/mymodule/manifests/eos.pp:29; resource ["File", "/var/tmp/eos"] already declared at /etc/puppet/modules/mymodule/manifests/eos.pp:47
我想要做这样的事情:
文件{$ eos_mount:
确保=>'目录',
mode =>'1777',
owner =>'root',
group =>'root',
}
mount {$ eos_mount:
确保=>“挂载”,
设备=> $ lv_device,
fstype => $ fstype,
options =>'defaults,noatime,nodiratime',
require => File [$ eos_mount],
通知=>文件['post_eos'],
}
文件{'post_eos':
path=> $ eos_mount,
确保=>'目录',
mode =>'1777',
owner =>'root',
group =>'root',
}
什么是安装后确保文件夹权限的方法?
在木偶3+中,您可以修改现有资源,如下所示:
请参阅这里的文档以获取更多详细信
file { $eos_mount : ensure => 'directory', mode => '1777', owner => 'root', group => 'root', } mount { $eos_mount : ensure => 'mounted', device => $lv_device, fstype => $fstype, options => 'defaults,noatime,nodiratime', require => File[$eos_mount], notify => File['post_eos'], } File[$eos_mount] { path => $eos_mount, ensure => 'directory', mode => '1777', owner => 'root', group => 'root', }
我宁愿使用模块: puppet-name_service_lookups并执行如下操作:
$user_info = getpwnam($owner) $user_uid = $user_info['uid'] $group_info = getgrnam($group) $group_gid = $group_info['gid']
并在select挂载,做:
options => "defaults,noatime,nodiratime,uid=${user_uid},gid=${group_gid}",
据我所知,这个错误的问题是你已经在某个地方定义了资源file {'/var/tmp/eos': } ,所以puppet master不会让你编译目录,因为一个资源必须是唯一的(资源types+ $名称)。
在这种情况下,如果您有相同资源的潜在冲突,则应使用虚拟资源 ,这样可以保证仅在目录中添加一次虚拟资源 ,而无需包含多less次。