Ansible jinja - если цикл последний без перевода строки - PullRequest
0 голосов
/ 31 мая 2018

У меня проблемы с шаблонами.В основном мне просто нужно перечислить имя_сервера в более удобочитаемом формате.

Это переменная, которую я определил в groups / all.yml

server_name:
  - domain1.mydomain.com
  - domain2.mydomain.com
  - domain3.mydomain.com
  - domain4.mydomain.com

И это мой шаблон для myvhost.conf.j2

server_name     {% for name in server_name -%}
                  {{ name }}
                {% if loop.last -%};{%- endif -%}{% endfor %}

И результат:

server_name     domain1.mydomain.com
                domain2.mydomain.com
                domain3.mydomain.com
                domain4.mydomain.com
                ;

Ожидаемый результат:

server_name     domain1.mydomain.com
                domain2.mydomain.com
                domain3.mydomain.com
                domain4.mydomain.com;

Я пробовал несколько комбинаций для шаблонов с контролем пробелов илиотступ, но это испортило результат.Пожалуйста, сообщите любезно

1 Ответ

0 голосов
/ 31 мая 2018

Вы хотите напечатать либо символ новой строки, за которым следуют 16 пробелов, или ; после значения переменной, поэтому это естественное требование для оператора if-else:

server_name     {% for name in server_name -%}
                  {{ name }}
                {%- if not loop.last %}

                {% else %};{% endif %}{% endfor %}
...