Ansible 成为剧本中特定任务的用户

Ansible 成为剧本中特定任务的用户

有没有办法在剧本中使用remote_user来执行特定任务?这是针对企业环境的,因此我的访问权限非常有限(即无法访问 /etc/sudoers)或此类文件。

我需要一个解决方案:

控制节点是 = myserver@xyz |可以在没有密码(基于密钥)的情况下 ssh 到 weblogic@server1 和 chandru@server1

任务1:必须由weblogic运行

任务2:必须由chandru运行

现在我正在使用两本剧本来完成一个简单的任务

playbook1.yml -u weblogic ( for the first task)
playbook2.yml -u chandru ( for the second task)

一旦我进入了weblogic用户,我就不能成为chandru的_user或成为_sudo。

我的控制节点可以在没有密码的情况下 ssh 到两个 ids(chandru 和 weblogic),而无需密码。

答案1

关键词 远程用户也可以用在任务中。测试一下例如

  - command: whoami
    register: result
    remote_user: weblogic
    become: false
  - debug:
      var: result.stdout

  - command: whoami
    register: result
    remote_user: chandru
    become: false
  - debug:
      var: result.stdout

该过程涉及三个实体

  1. 正在运行 playbook 的用户(No1)
  2. 正在登录远程主机的用户(No2)
  3. No2可以成为(No3)的用户
  • 变量远程用户定义No2。如果远程用户未定义 No2 为 No1
  • 环境“成为:真实”说No2将升级为成为用户No3(默认:root)。如果“成为:假”Ansible 在远程主机上作为 No2 运行。

结果,你想要的是日志作为一个不同的远程用户(No2) 到远程主机并且不成为(升级)到不同的成为用户(No3)。这也解释了“成为:假”在任务中。

相关内容