首页 > 解决方案 > Ansible 中的权限升级需要密码

问题描述

我正在尝试使用 Ansible 在几个远程节点上创建一个文件。我以“xyz”用户身份连接,在特权升级后我想成为“abc”用户。

这里的问题是 Ansible 期望密码成为“abc”用户,但我可以直接使用命令:sudo su abc 在 Putty 上切换为 abc 用户。

如果我通过以下命令,我的剧本运行良好: ansible-playbook TestPlay.yml --ask-become-pass 然后输入密码。

但是,我们不能共享 'abc' 用户的密码,所以我们需要 Ansible 使用 sudo 直接成为 'abc' 用户,这不会发生。当我在我的剧本中使用 : become_method: sudo 时,它失败了 {"msg": "Timeout (12s) waiting for privilege escalation prompt:"}。

我尝试在主机文件中添加 ANSIBLE_BECOME_EXE='sudo su -' ,但它仍然不起作用!!。

如果我的配置中缺少某些内容,请告诉我。

我的 TestPlay 剧本:

- name: TestPlay sample
  become: true
  become_method: su
  become_user: abc
  hosts: group1
  tasks:
    - name : create a file after becoming abc user
      file:
        path: /var/tmp/temp.txt
        state: touch
        mode: '0665'

主机文件条目:

[group1]

ip address1

ip address2

[group1:vars]

ansible_user=xyz

ansible_password=passxyz

标签: linuxansiblesudoansible-2.x

解决方案


推荐阅读