部署基础上的变更值是否可以使用ansible?我在两台机器上配置keepalived,我想为优先级添加一个循环。
我无法循环或使用range()函数,因为它只是在同一部署中循环。
我试图设置优先级:
到目前为止,我的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 %}
}
}
答案 0 :(得分:2)
您可以在模板中使用主机索引(如果您不关心谁将获得更高的优先级):
priority {{ play_hosts.index(inventory_hostname) }}
或者您可以在库存文件中预先指定优先级作为主变量,如下所示:
server1 vrrp_priority=100
server2 vrrp_priority=150
...然后在模板中使用它:
priority {{ vrrp_priority }}