首页 文章

Ansible无法设置临时权限

提问于
浏览
2

我使用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 回答

  • 2

    你可以尝试这样的事情:

    - 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”文档

相关问题