我使用ansible替换多个RHEL6和RHEL7服务器上的用户的ssh密钥 . 我正在运行的任务是:
- name: private key
copy:
src: /Users/me/Documents/keys/id_rsa
dest: ~/.ssh/
owner: unpriv
group: unpriv
mode: 0600
backup: yes
我正在尝试更新的两台主机出现以下错误:
致命:[host1]:失败了! => {“failed”:true,“msg”:“无法设置临时文件的权限Ansible在成为非特权用户时需要创建(rc:1,错误:chown:更改/ tmp / ansible-tmp-的所有权) 19 /':不允许操作\ nchown:更改/ tmp / ansible-tmp-19 / stat.py'的所有权:不允许操作\ n) . 有关解决此问题的信息,请参阅https://docs.ansible . COM / ansible / become.html#成为-AN-非特权用户“}
问题是这两个得到错误的克隆是一些正在更新的克隆 . 我已经比较了/ tmp目录中的sudoers和sshd设置,以及权限和挂载选项 . 它们在问题主机和工作主机之间都是相同的 . 关于我接下来可以检查的任何想法?
我在Mac OS Sierra上运行ansible 2.3.1.0,如果有帮助的话 .
Update:
@techraf
我不知道为什么这对所有主机都有效,除了两个 . 这是原始的剧本:
- name: ssh_keys
hosts: my_hosts
remote_user: my_user
tasks:
- include: ./roles/common/tasks/keys.yml
become: yes
become_method: sudo
和原始keys.yml:
- 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
:
- name: public key
copy:
src: /Users/me/Documents/keys/id_rsab
dest: /home/unpriv/.ssh/
owner: unpriv
group: unpriv
mode: 0600
backup: yes
它适用于所有主机 .
1 回答
你可以尝试这样的事情:
注意:
有关详细信息,请查看“become”文档