Ansible复制必须为只读且由另一用户拥有的文件
我需要将一个文件(在本例中是一个munge键)从一个控制节点复制到多个从属节点,我想使用ansible copy来实现这一点。问题是此文件必须由munge用户拥有,并且拥有所有者只读权限“0400”。它所在的目录必须为munge所有,并且具有“0700”权限 下面的ansible任务结构适用于具有更大权限“0644”的其他文件,甚至成功设置了所有者/组/权限,但此文件失败:Ansible复制必须为只读且由另一用户拥有的文件,ansible,copy,file-permissions,Ansible,Copy,File Permissions,我需要将一个文件(在本例中是一个munge键)从一个控制节点复制到多个从属节点,我想使用ansible copy来实现这一点。问题是此文件必须由munge用户拥有,并且拥有所有者只读权限“0400”。它所在的目录必须为munge所有,并且具有“0700”权限 下面的ansible任务结构适用于具有更大权限“0644”的其他文件,甚至成功设置了所有者/组/权限,但此文件失败: - name: Copy munge key copy: src: /etc/munge/munge.key
- name: Copy munge key
copy:
src: /etc/munge/munge.key
dest: /etc/munge/munge.key
owner: munge
group: munge
mode: '0400'
有没有办法在本地和远程“成为root或munge”来复制文件?或者这个问题还有其他简单的解决方案吗
编辑:
我尝试过使用been:yes
,使用been\u user:root
和单独使用been\u user:munge
。两者都不起作用。它失败,每次出现错误“无法找到或访问'/etc/munge/munge.key'
”。文件在那里,但/etc/munge和/etc/munge/munge.key仅对munge用户具有权限
编辑2:
我的老生常谈的解决方案由五个任务组成,它们分别是1。释放对源文件和目录的权限;2.释放远程文件和目录的权限;3.复制文件;4.锁定远程文件和目录权限;5.锁定原始源文件和目录。这是可行的,但我仍然不清楚“变成”究竟何时生效,它是否只在源节点上生效,还是在远程节点上生效,以及它如何导致我的一步复制失败。添加:
become: true
这应该足以避免任务失败。谢谢你的回答,@sorin。我添加了编辑以澄清这并不能解决问题。也许它需要在本地和远程“变成”;我不知道。您可能还需要添加Been_user:rootOn支持selinux的系统您可能还需要selinux模块,但ansible会告诉您是否需要它。