2016-05-03 58 views
0

我的主机文件定义,对于一个给定主机:如何覆盖特定任务的ansible_become?

ansible_ssh_user=root 
ansible_become_user=my_user 
ansible_become=true 

在几个任务,我不想成为my_user。设置become: false没有任何效果,而ansible_become: false导致“错误:ansible_become不是Ansible任务或处理程序中的合法参数”

我试图做什么可能吗?我认为典型的模式是做与我在这里做的相反的事情,并以my_user身份进行连接,然后根据需要使用become_user: root

+0

您使用的是Ansible的哪个版本? – Railslide

+0

我正在使用版本1.9 – skyellin

+0

如果您可以使用版本2.0+,那么您可以使用块功能一次性执行多项任务 –

回答

0
  1. 您可以从hosts文件中删除ansible_become_user=my_useransible_become=true
  2. 正如你所说,你有几个任务,你不想成为 的用户,将become: yesbecome_user: <some-user>添加到你想要成为的任务。
0
--- 
- name: example play 
    hosts: myhost 
    tasks: 
    - name: run as user in inventory 
    debug: msg=$USER 

    - name: run as root user 
    become: true 
    become_user: root 
    debug: msg=$USER