Ansible шаблон л oop переменная - PullRequest
1 голос
/ 01 апреля 2020

В моем файле invenotry есть три хоста для настройки HAPROXY. используя ниже ansible tempalte, я смог заполнить IP-адрес в файле конфигурации. Я также хочу изменить имя со значением индекса. как мне изменить kube-1 на переменную, например (kube-1, kube-2, kube-3)

шаблон

{% for host in groups['master'] %}
        server kube-1 {{ hostvars[host]["ansible_default_ipv4"]["address"] }}:30549 check verify none
{% endfor %}

пример вывода

server kube-1 x.x.x.x:30549 check verify none
server kube-1 x.x.x.x:30549 check verify none
server kube-1 x.x.x.x:30549 check verify none

Требуемый выход

server kube-1 x.x.x.x:30549 check verify none
server kube-2 x.x.x.x:30549 check verify none
server kube-3 x.x.x.x:30549 check verify none

Спасибо SR

1 Ответ

0 голосов
/ 01 апреля 2020

Существует переменная loop.index, доступная внутри структуры управления for в jinja2. Следующее должно соответствовать вашим ожиданиям.

{% for host in groups['master'] %}
        server kube-{{ loop.index }} {{ hostvars[host]["ansible_default_ipv4"]["address"] }}:30549 check verify none
{% endfor %}

Ссылка: https://jinja.palletsprojects.com/en/2.11.x/templates/#for

...