我需要将一个文件(在本例中为munge key )从一个控制节点复制到多个从节点,我想使用ansible copy来完成此操作。问题是此文件必须归munge用户所有,并具有所有者只读权限'0400‘。它所在的目录必须为munge所有,并且具有'0700‘权限。
下面的ansible任务结构适用于权限更高的'0644‘权限的其他文件,甚至成功设置了owner/group/权限,但对此文件设置失败:
- name: Copy munge key
copy:
src: /etc/munge/munge.key
dest: /etc/munge/munge.key
owner: munge
group: munge
mode: '0400'有没有办法在本地和远程“成为root或munge”来复制文件?或者有其他简单的解决方案来解决这个问题?
编辑:
我已经用become_user: root和become_user: munge分别试用了become: yes。两种方法都不起作用。每次都会失败,并显示错误"Could not find or access '/etc/munge/munge.key'"。文件在那里,但是/etc/munge和/etc/ munge /munge.key都只有munge用户的权限。
编辑2:
我的冗长的解决方案由五个任务组成: 1.释放源文件和目录的权限;2.释放远程文件和目录的权限;3.复制文件;4.锁定远程文件和目录的权限;5.锁定原始的源文件和目录。这是可行的,但我仍然困惑于“变成”何时生效,以及它是只在源节点上生效,还是也在远程节点上生效,以及这如何可能导致我的一步复制失败。
发布于 2019-10-08 23:39:34
添加:
become: true这应该足以避免任务失败。
https://stackoverflow.com/questions/58288140
复制相似问题