Ansible 模板循环变量
Ansible template loop variable
我的清单文件中有三台主机来配置 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
在 jinja2 的 for
控制结构中有一个 loop.index
变量可用。以下应该符合您的期望。
{% 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
我的清单文件中有三台主机来配置 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
在 jinja2 的 for
控制结构中有一个 loop.index
变量可用。以下应该符合您的期望。
{% 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