ansible jinja2 - if elseif - 使用相同的行

ansible jinja2 - if elseif - use the same lines

在这两种情况下 (if, elif),它都必须从“start-here”行开始。 both(if, elseif) 如何来自同一行 looped/started?

如何简化逻辑并使用变量来保存范围的上限?

例如:

{%- 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 %}

这将得到:

  • -------------------------------------------
    ROUTER_0
    -------------------------------------------
    -------------------------------------------
    ROUTER_1
    -------------------------------------------
    
    web.web_ports 等于 multi-home
  • -------------------------------------------
    ROUTER_0
    -------------------------------------------
    
    web.web_ports 不等于 multi-home(所以 single-home,还有任何其他可能的值)