里面的 Ansible 变量 when

问题描述

我正在编写一个剧本,在那里我得到了一个名为 sd* 的磁盘,没有支架也没有分区。

我有这个:

  - set_fact:
      test: "{{ ansible_facts.devices }}"

  - debug:
      msg: "{{ test }}"

  - debug:
      msg: "{{ test }}.{{item}}"
    when: "ansible_facts.devices.{{item}}.holders == [] and ansible_facts.devices.{{item}}.partitions == {} and ansible_facts.devices.{{item}} == {{item}}"
    loop:
    - sdb
    - sdc

但我收到此错误

  conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: ansible_facts.devices.{{item}}.holders == [] and ansible_facts.devices.{{item}}.partitions == {} and ansible_facts.devices.{{item}} == {{item}}

如何在 jinja2 模板中使用变量?我也试过这个:

ansible_facts.devices.item.holders == [] and ansible_facts.devices.item.partitions == {} and ansible_facts.devices.item == item

但后来我得到错误,该项目是一个未定义的变量。

真诚的瓦林滑雪

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)