ansible jinja2-如果是elseif-使用相同的行
在这两种情况下(if、elif),它必须从“开始于此处”行开始。 如何从同一行循环/启动两个(if、elseif)ansible jinja2-如果是elseif-使用相同的行,ansible,jinja2,Ansible,Jinja2,在这两种情况下(if、elif),它必须从“开始于此处”行开始。 如何从同一行循环/启动两个(if、elseif) if语句有多个端口,将使用相同的配置创建两个不同的配置 elif语句只有一个端口,将使用相同的配置创建一个配置 {% for web in web_servers %} {% if web.web_ports == 'multi-home' %} {% for n in range(0, 2) %} {% elif web.web_ports == 'single-home'
- if语句有多个端口,将使用相同的配置创建两个不同的配置
- elif语句只有一个端口,将使用相同的配置创建一个配置
{% for web in web_servers %} {% if web.web_ports == 'multi-home' %} {% for n in range(0, 2) %} {% elif web.web_ports == 'single-home' %} {% for n in range(0, 1) %} *(start-here)* ------------------------------------------- ROUTER_{{ n }} ------------------------------------------- {% for rtr in web['router_'~n] %} . . . . . . {% endfor %} {% endfor %} {% endfor %} {% endif %} {% endfor %}
{%- set max_range = 1 -%}
{%- if web.web_ports == 'multi-home' -%}
{%- set max_range = 2 -%}
{%- endif -%}
{%- for n in range(0, max_range) -%}
-------------------------------------------
ROUTER_{{ n }}
-------------------------------------------
{#- your other for can still be nested here #}
{% endfor %}
这将提供:
-
当------------------------------------------- 路由器0 ------------------------------------------- ------------------------------------------- 路由器1 -------------------------------------------
等于web.web\u端口
multi-home
-
当------------------------------------------- 路由器0 -------------------------------------------
不等于web.web\u端口
(因此multi-home
,还包括任何其他可能的值)single-home