ansible条件语句不应包含jinja2模板分隔符



当我仍然想使用变量时,我可以用什么来替换{{}}?

when: ansible_lvm.lvs.{{ resize_lvname }}.size_g < 10 and
ansible_devices.{{ new_dev }}.size == "70.00 GB

[警告]:条件语句不应包含jinja2模板分隔符,如{{}}或{%%}。找到:ansible_lvm.lvs{{resize_lvname}}。size_g<10和ansible_devices。{{new_dev}}.size=="70.00GB";而不是";[new_dev].value.spartitions">

when条件中,您已经在隐式Jinja模板上下文中。。。这意味着,如果你想引用一个变量,你只需要变量名。例如:

when: ansible_lvm.lvs[resize_lvname].size_g < 10 and
ansible_devices[new_dev].size == "70.00 GB

回想一下,some.var.key等价于some.var["key"];我们需要在这里使用[...]语法,因为我们希望使用resize_lvname作为ansible_lvm.lvs字典上的关键字。如果我们要编写ansible_lvm.lvs.resize_lvname,我们将尝试查找一个字面名称为resize_lvmname的密钥(换句话说,这将相当于ansible_lvm.lvs["resize_lvname"](。

最新更新