Ansible: playbook中成为选项的读取值



是否可以在剧本中获得参数--become的值?
例如,如果标志--become存在,我希望得到true,否则得到false

我曾经认为有一个become变量,但实际上它是不存在的。

理想情况下,我想使用如下格式:

- name 
become: {{ become }} 

你可以这样写:

- hosts: localhost
gather_facts: false
tasks:
- name: get UID
become: "{{ myvar|default(false)|bool }}"
command: id
register: uid
- debug:
var: uid.stdout

如果我们像这样运行:

ansible-playbook playbook.yml

我们得到:

TASK [debug] *******************************************************************
ok: [localhost] => {
"uid.stdout": "uid=1000(lars) gid=1000(lars) ..."
}

而如果我们设置myvar=true:

ansible-playbook playbook.yml -e myvar=true

我们得到:

TASK [debug] *******************************************************************
ok: [localhost] => {
"uid.stdout": "uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023"
}

我们使用myvar|default(false)|bool,所以如果myvar没有设置,我们得到布尔值false,如果myvar被设置为字符串值&;false&;,bool过滤器将其转换为false,因为否则在布尔上下文中非空字符串的计算结果为true

最新更新