Ansible无法设置临时权限

时间:2017-09-21 19:51:35

标签: ansible

我正在使用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

它适用于所有主机。

3 个答案:

答案 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