【发布时间】:2019-10-08 14:12:26
【问题描述】:
我需要将一个文件(在这种情况下为 munge 密钥)从一个控制节点复制到多个从节点,并且我想使用 ansible 复制来执行此操作。问题是该文件必须由 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”来复制文件?或者这个问题有其他简单的解决方案吗?
编辑:
我已经尝试过become: yes、become_user: root 和单独的become_user: munge。都没有奏效。它每次都失败并出现错误"Could not find or access '/etc/munge/munge.key'"。该文件在那里,但 /etc/munge 和 /etc/munge/munge.key 都只有 munge 用户的权限。
编辑 2:
我的 hackish 冗长的解决方案包括五个任务: 1. 释放源文件和目录的权限; 2. 释放远程文件和目录的权限; 3.复制文件; 4、锁定远程文件和目录权限; 5. 锁定原始源文件和目录。这可行,但我仍然对“成为”何时生效以及它是否仅在源节点或远程节点上生效以及如何导致我的一步复制失败感到困惑。
【问题讨论】:
标签: ansible copy file-permissions