我尝试配置ansible成为其他用户:
我的ansible.cfg条目
sudo_flags=
ssh_args = -t -t
sudo_exe = sudo /bin/su
我只能通过一种方式升级远程主机上的权限(这在ssh会话中有效):
sudo / bin / su anyuser -
示例剧本:
---
- hosts: anyhosts
become: true
become_user: anyuser
tasks:
- name: check becoming anyuser
command: "ls -ltha"
当我运行我的简单剧本时,在详细的日志输出中,我看到-u选项:
'''''sudo / bin / su -u anyuser -
如何在playbook或ansible.cfg中禁用/删除此 -u 选项?
1 回答
你告诉Ansible
sudo
是sudo /bin/su
,但就Ansible知道它仍在使用sudo
,它支持-u
参数 . 如果要使用其他命令进行权限提升,请考虑设置become_method .但是,它不仅仅使用sudo,因为你似乎拥有sudo权限 . 可能设置
sudo_exe = sudo sudo
实际上会解决问题,因为第一个sudo
会让你获得root权限(看起来根据你的问题工作得很好),然后root
就可以运行sudo -u ...
,这应该可以正常工作 .