Ansible 块内任务的附加条件
我试图用一些when条件将任务包含在块中。此外,此块中的某些任务还具有附加条件。 问题是这样的任务(带有附加条件)被跳过。块的条件和所有附加条件都为真 下面是一个示例剧本:Ansible 块内任务的附加条件,ansible,ansible-2.x,Ansible,Ansible 2.x,我试图用一些when条件将任务包含在块中。此外,此块中的某些任务还具有附加条件。 问题是这样的任务(带有附加条件)被跳过。块的条件和所有附加条件都为真 下面是一个示例剧本: - block: - set_fact: packages_to_install: "{{ packages_to_install }} + [ '{{ (distrs.stdout | from_json).postgresql }}' ]" - set_fact:
- block:
- set_fact:
packages_to_install: "{{ packages_to_install }} + [ '{{ (distrs.stdout | from_json).postgresql }}' ]"
- set_fact:
packages_to_install: "{{ packages_to_install }} + [ '{{ (distrs.stdout | from_json).webserver }}' ]"
when:
- server.webserver is defined
- server.webserver == true
when:
- server is defined
因此,postgresql被添加到包列表中,但webserver没有
根据,在从块中附加when条件并在任务上下文中对其求值后,将执行块内的所有任务。
也许不仅仅在Ansible 2.4中可能包含附加条件的封闭任务?您应该在声明时修复
的缩进
也许不仅仅在Ansible 2.4中可能有附加条件的封闭任务
Ansible 2.4正常工作:
tasks:
- block:
- debug:
msg: "task 1"
- debug:
msg: "task 2"
when: false
- debug:
msg: "task 3"
when: true
when: true
结果:
TASK [debug] **************************************************************************************************
ok: [localhost] => {
"msg": "task 1"
}
TASK [debug] **************************************************************************************************
skipping: [localhost]
TASK [debug] **************************************************************************************************
ok: [localhost] => {
"msg": "task 3"
}
为了清晰起见,您可以在块
任务中对键进行重新排序:
tasks:
- when: true
block:
- debug:
当
声明时,您应该修复的缩进
也许不仅仅在Ansible 2.4中可能有附加条件的封闭任务
Ansible 2.4正常工作:
tasks:
- block:
- debug:
msg: "task 1"
- debug:
msg: "task 2"
when: false
- debug:
msg: "task 3"
when: true
when: true
结果:
TASK [debug] **************************************************************************************************
ok: [localhost] => {
"msg": "task 1"
}
TASK [debug] **************************************************************************************************
skipping: [localhost]
TASK [debug] **************************************************************************************************
ok: [localhost] => {
"msg": "task 3"
}
为了清晰起见,您可以在块
任务中对键进行重新排序:
tasks:
- when: true
block:
- debug:
请修复缩进问题–在块:
语句中附加了两个when:
子句。请修复缩进问题–在块:
语句中附加了两个when:
子句。感谢与密钥重组相关的提示-这样做更清楚:)至于我原来的问题-事实上,我的一个条件有一个错误。“server.webserver”保存JSON数据,并且没有布尔标志。所以我修复了这个条件,一切都按预期开始工作。缩进没问题-我只是不准确地在这里发布了代码。感谢与密钥重组相关的提示-这样就更清晰了:)至于我原来的问题-实际上我的一个条件中有一个错误。“server.webserver”保存JSON数据,并且没有布尔标志。所以我修复了这个条件,一切都按预期开始工作。缩进是可以的-我只是错误地把代码贴在这里。