【问题标题】:Ansible template loop variableAnsible 模板循环变量
【发布时间】:2020-04-01 15:12:56
【问题描述】:

我的清单文件中有三台主机来配置 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

【问题讨论】:

    标签: ansible ansible-template


    【解决方案1】:

    在 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

    【讨论】:

      猜你喜欢
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多