Ansible 如何使用when块检查库存文件中的变量是否已定义并检查其是否为真

Ansible 如何使用when块检查库存文件中的变量是否已定义并检查其是否为真,ansible,ansible-inventory,Ansible,Ansible Inventory,此代码段不起作用,错误消息是“任务包含一个带有未定义变量的选项。错误是:'use\u service\u mesh'未定义。” --- - hosts: localhost tasks: - name: check debug: msg: "undefined" when: use_service_mesh is undefined - name: echo debug: msg: "All ok&q

此代码段不起作用,错误消息是“任务包含一个带有未定义变量的选项。错误是:'use\u service\u mesh'未定义。”

---
- hosts: localhost

  tasks:

  - name: check
    debug:
      msg: "undefined"
    when: use_service_mesh is undefined

  - name: echo
    debug:
      msg: "All ok"
    when:  use_service_mesh is defined and use_service_mesh | bool

  - name: echo2
    debug:
      msg: "{{ use_service_mesh }}"

在哪里为变量赋值?如果变量未定义,调试任务将失败。@MarcoBaldelli我在清单文件中赋值。但是我需要知道,如果“use\u service\u mesh is defined”不正确,并且在不检查第二部分的情况下返回false,是否有可能跳过第二部分?您应该证明ide显示完整的错误消息。是否确实在名为
echo
的任务中失败,而不是
echo2
?是否尝试使用
未定义的
而不是
未定义的