2016-10-12 33 views
-1

我尝试配置ansible为成为其他用户sudo的选项字符串中删除-u:我怎么能由ansible配置

我ansible.cfg项

sudo_flags= 
ssh_args = -t -t 
sudo_exe = sudo /bin/su 

我可以远程主机只有一个特权升级方法(和这部作品在SSH会话):

须藤/斌/苏anyuser -

实例剧本:

--- 
- hosts: anyhosts 
    become: true 
    become_user: anyuser 


    tasks: 
    - name: check becoming anyuser 
    command: "ls -ltha" 

当我运行我的简单的剧本,在详细日志输出我看到-u选项:

'“”'须藤/斌/苏-u anyuser -

如何在playbook或ansible.cfg中禁用/删除此-u选项?

回答

1

您已经告诉Ansible sudosudo /bin/su,但据Ansible知道它仍在使用sudo,它支持-u参数。如果您想要使用某些其他命令来提升权限,请考虑设置become_method

但是,目前尚不清楚为什么您不只是使用sudo,因为您似乎拥有sudo权限。可能设置sudo_exe = sudo sudo实际上可以解决这个问题,因为第一sudo会得到你的root访问权限(这似乎只是正常工作,根据你的问题),然后root将能够运行sudo -u ...,这应该只是罚款。

+0

我同意,最后我发现在文档笔记针对这种情况: '方法不能被链接。你不能使用sudo /斌/ su - 为一个用户,你需要有运行命令,如sudo的用户还是能够苏直接给它的特权(同为pbrun,pfexec或其他支持的方法).' – erroia