有没有办法在剧本中使用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
该过程涉及三个实体
- 正在运行 playbook 的用户(No1)
- 正在登录远程主机的用户(No2)
- No2可以成为(No3)的用户
- 变量远程用户定义No2。如果远程用户未定义 No2 为 No1
- 环境“成为:真实”说No2将升级为成为用户No3(默认:root)。如果“成为:假”Ansible 在远程主机上作为 No2 运行。
结果,你想要的是日志作为一个不同的远程用户(No2) 到远程主机并且不成为(升级)到不同的成为用户(No3)。这也解释了“成为:假”在任务中。