【发布时间】:2018-03-03 07:01:30
【问题描述】:
我正在使用 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,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
和原始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
它适用于所有主机。
【问题讨论】:
-
另外...您有多台 RHEL6 和 RHEL7 机器,根据您写的内容,问题出现在两台机器上。 RHEL6 听起来不像是 RHEL7 的克隆,所以它就像是一台机器,还是什么?
-
我感谢任何花时间提供帮助的人,但关于理解英语的讽刺评论毫无用处。我是 Ansible 的新手,在提问时不确定哪些信息是相关的。提供太多信息与没有提供足够信息一样容易受到侮辱。你是对的,关于 RHEL 6 和 RHEL 7。我试图达到的目的是得到不同的结果,而我的目标主机上似乎是一致的配置。
-
嗯,你想读的就是你读的。每个错误消息都可以从多个层次上理解。例如,您可以理解错误的英文含义,但不理解技术含义(尤其是这个)。我找不到更好的措辞。英文信息清楚地写着“成为非特权用户”,所以我问为什么你的问题中没有关于...成为非特权用户的问题——对我来说是一个自然的、完全中立的问题,对你来说是一个贬义的问题。
标签: ansible