2016-08-22 40 views
1

是否有可能在部署的基礎上更改值,而且是否有可能?我在兩臺機器上配置keepalived,我想爲優先級添加一個循環。Ansible:根據部署更改模板中的值

我無法循環或使用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 %} 
    } 
} 

回答

2

你可以像這樣在你的模板中使用主機索引(如果你不關心誰會得到更高的優先級):

priority {{ play_hosts.index(inventory_hostname) }} 

或者你可以指定提前優先事項主機變量在您的清單文件是這樣的:

server1 vrrp_priority=100 
server2 vrrp_priority=150 

...然後使用您的模板中:

priority {{ vrrp_priority }} 
+0

uuuuuugh host_vars我覺得自己像個白癡。當然,這很乾淨。謝謝 –