templates - Jinja2 For 循环 YAML 字典列表

标签 templates ansible jinja2 nexus

我对 Jinja2 相当陌生,我有一个问题,无论我如何尝试,似乎都无法解决。我正在尝试使用 Jinja2 模板和我创建的一些变量文件为设备创建一个配置文件。当我为 YAML 变量文件指定字典列表时,我似乎根本无法让它工作。

模板:

{% for id in VLANS %}
vlan {{ id.id }}
  name {{ id.name }}
  vn-segment {{ id.vni }}
{% endfor %}

变量文件:

VLANS:
  - id: 9
    name: "VLAN9"
    vni: 109
  - id: 10
    name: "VLAN10"
    vni: 110
  - id: 11
    name: "VLAN11"
    vni: 111
  - id: 12
    name: "VLAN12"
    vni: 112

最佳答案

看起来不错。下面的玩法

    - name: Template
      template:
        src: template.j2
        dest: test.txt

给出

    shell> cat test.txt 
    vlan 9
      name VLAN9
      vn-segment 109
    vlan 10
      name VLAN10
      vn-segment 110
    vlan 11
      name VLAN11
      vn-segment 111
    vlan 12
      name VLAN12
      vn-segment 112 

带有模板

    shell> cat template.j2
    {% for item in VLANS %}
    vlan {{ item.id }}
      name {{ item.name }}
      vn-segment {{ item.vni }}
    {% endfor %}

关于templates - Jinja2 For 循环 YAML 字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252801/

相关文章:

windows - Ansible无法通过SSH连接到Windows节点

javascript - Jinja、Flask 和 CanvasJS 不显示图表

python - 如何使用 WTForms 呈现我的选择字段?

c++ - `std::function` 和之前推导的模板参数的替换失败 - 为什么?

c++ - 在树转换中结合模板和继承

regex - ansible lineinfile 正则表达式 多行

ansible - 如何使用ansible提示输入sudo密码

qt - 从 QWidget 继承并使类成为模板

c++ - 如何将现有模板类部分特化为新类型?

python - 同时使用 Python f-strings 和 Jinja