我正在使用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
Run Code Online (Sandbox Code Playgroud)
我尝试更新的两个主机出现以下错误:
致命的:[host1]:失败!=> {“ failed”:true,“ msg”:“无法对临时文件设置权限当成为非特权用户时,需要创建Ansible(rc:1,err:chown:更改
/tmp/ansible-tmp-19/': Operation not permitted\nchown: changing ownership of/ tmp / ansible-tmp-的所有权19 / stat.py':不允许操作\ n)。有关解决此问题的信息,请参见 https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user “}
事实是,这两个正在得到错误的是一些正在更新的克隆。我已经比较了sudoers和sshd设置,以及/ tmp目录上的权限和安装选项。在问题主机和工作主机之间,它们都是相同的。关于下一步我可以检查的任何想法?
我在Mac OS Sierra上运行ansible 2.3.1.0,如果有帮助的话。
更新:
@techraf
我不知道为什么这可以在除两个主机之外的所有主机上工作。这是原始剧本:
- name: ssh_keys
hosts: my_hosts
remote_user: my_user
tasks:
- include: ./roles/common/tasks/keys.yml
become: yes
become_method: sudo
Run Code Online (Sandbox Code Playgroud)
和原始的keys.yml:
- name: public key
copy:
src: /Users/me/Documents/keys/id_rsab
dest: ~/.ssh/
owner: unpriv
group: unpriv
mode: 060
backup: yes
Run Code Online (Sandbox Code Playgroud)
我将剧本更改为:
- 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
Run Code Online (Sandbox Code Playgroud)
并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
Run Code Online (Sandbox Code Playgroud)
它适用于所有主机。
小智 46
尝试在远程主机上安装 ACL,然后执行 ansible 脚本
sudo apt-get install acl
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情:
- 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
Run Code Online (Sandbox Code Playgroud)
请注意:
become: true
become_user: root
Run Code Online (Sandbox Code Playgroud)
查看“成为”文档以获取更多信息
小智 6
虽然安装acl模块有效,但还有一种替代方法。
将下面的行添加到 ansible.cfg 的默认部分。
allow_world_readable_tmpfiles = True
更好的是,只需将其添加到需要它的任务中即可:
vars:
allow_world_readable_tmpfiles: true
Run Code Online (Sandbox Code Playgroud)
具有更多详细信息的类似问题是Becoming non root user in ansible failed
| 归档时间: |
|
| 查看次数: |
5607 次 |
| 最近记录: |