Ansible 2.4 当 var 被定义并包含

Ansible 2.4 when var is defined and contains

我目前正在编写一个具有多个条件的 ansible 剧本。 我有一个带有 when 条件的 uri 块。 when 条件检查 var 是否已定义并包含 0:

when: (logs_table_exist.stdout == "0") or ("0" in logs_table_old)

现在 logs_table_exist 将始终有一个值,但 logs_table_old 也可以是未定义的。这个 when 条件没有给出错误但它保持为 false,即使 logs_table_old 是 0.

有人知道如何解决这个问题吗?

谢谢

如果您的变量可能未定义,请使用 default filter:

when: (logs_table_exist.stdout == "0") or ("0" in (logs_table_old | default([])))