Ansible复制必须为只读且由另一用户拥有的文件

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

我需要将一个文件(在本例中是一个munge键)从一个控制节点复制到多个从属节点,我想使用ansible copy来实现这一点。问题是此文件必须由munge用户拥有,并且拥有所有者只读权限“0400”。它所在的目录必须为munge所有,并且具有“0700”权限

下面的ansible任务结构适用于具有更大权限“0644”的其他文件,甚至成功设置了所有者/组/权限,但此文件失败:

- 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会告诉您是否需要它。