Ansible:根据部署更改模板中的值
Ansible: Change value in template based on deployment
是否可以使用 ansible 在部署基础上更改值?我在两台机器上配置keepalived,我想为优先级添加一个循环。
我无法循环或使用 range() 函数,因为它只会在同一部署中循环。
我正在尝试设置优先级:
- lb1 = 100
- lb2 = 101
到目前为止,我的 vrrp 实例如下所示:
vrrp_instance VI_1 {
state MASTER
interface {{ int }}
virtual_router_id 51
priority 100 <------------------- I'd like to iterate this value
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
# supports up to 20 by default
{% for ip in vips %}
{{ ip.addr }}
{% endfor %}
}
}
您可以像这样在模板中使用主机索引(如果您不关心谁将获得更高的优先级):
priority {{ play_hosts.index(inventory_hostname) }}
或者您可以像这样在清单文件中预先指定优先级作为主机变量:
server1 vrrp_priority=100
server2 vrrp_priority=150
...然后在您的模板中使用它:
priority {{ vrrp_priority }}
是否可以使用 ansible 在部署基础上更改值?我在两台机器上配置keepalived,我想为优先级添加一个循环。
我无法循环或使用 range() 函数,因为它只会在同一部署中循环。
我正在尝试设置优先级:
- lb1 = 100
- lb2 = 101
到目前为止,我的 vrrp 实例如下所示:
vrrp_instance VI_1 {
state MASTER
interface {{ int }}
virtual_router_id 51
priority 100 <------------------- I'd like to iterate this value
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
# supports up to 20 by default
{% for ip in vips %}
{{ ip.addr }}
{% endfor %}
}
}
您可以像这样在模板中使用主机索引(如果您不关心谁将获得更高的优先级):
priority {{ play_hosts.index(inventory_hostname) }}
或者您可以像这样在清单文件中预先指定优先级作为主机变量:
server1 vrrp_priority=100
server2 vrrp_priority=150
...然后在您的模板中使用它:
priority {{ vrrp_priority }}