我正在使用ansible替换多个RHEL6&上的用户的ssh密钥。 RHEL7服务器。我正在运行的任务是:
pseudo
我尝试更新的两台主机发出以下错误:
致命:[host1]:失败! => {"失败":true," msg":"设置失败 对Ansible需要创建的临时文件的权限 成为一个无特权的用户(rc:1,错误:chown:改变所有权
- name: private key copy: src: /Users/me/Documents/keys/id_rsa dest: ~/.ssh/ owner: unpriv group: unpriv mode: 0600 backup: yes
/ tmp / ansible-tmp-19 / stat.py':操作不是 允许\ n)的。有关解决此问题的信息,请参阅 https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user"}
问题是这两个得到错误的克隆是一些正在更新的克隆。我已经比较了/ tmp目录中的sudoers和sshd设置,以及权限和挂载选项。它们在问题主机和工作主机之间都是相同的。关于我接下来可以检查的任何想法?
我在Mac OS Sierra上运行ansible 2.3.1.0,如果有帮助的话。
更新
@techraf
我不知道为什么除了两个主机之外,这对所有主机都有效。这是原始的剧本:
/tmp/ansible-tmp-19/': Operation not permitted\nchown: changing
ownership of
和原始keys.yml:
- name: ssh_keys
hosts: my_hosts
remote_user: my_user
tasks:
- include: ./roles/common/tasks/keys.yml
become: yes
become_method: sudo
我将剧本改为:
- name: public key
copy:
src: /Users/me/Documents/keys/id_rsab
dest: ~/.ssh/
owner: unpriv
group: unpriv
mode: 060
backup: yes
- name: ssh_keys
hosts: my_hosts
remote_user: my_user
tasks:
- include: ./roles/common/tasks/keys.yml
become: yes
become_method: sudo
become_user: root
来:
keys.yml
它适用于所有主机。
答案 0 :(得分:4)
您可以尝试这样的事情:
- name: private key
become: true
become_user: root
copy:
src: /Users/me/Documents/keys/id_rsa
dest: ~/.ssh/
owner: unpriv
group: unpriv
mode: 0600
backup: yes
请注意:
become: true
become_user: root
查看“become”文档以获取更多信息
答案 1 :(得分:2)
在安装 acl
模块时,还有一个替代方案。
将下面的行添加到 ansible.cfg 的默认部分。
allow_world_readable_tmpfiles = True
更好的是,只需将其添加到需要它的任务中即可:
vars:
allow_world_readable_tmpfiles: true
有更多细节的类似问题是Becoming non root user in ansible fails
答案 2 :(得分:0)
尝试在远程主机上安装ACL,然后执行ansible脚本 sudo apt-get install acl