4
我通過Ansible在ec2服務器上運行滾動部署。我在同一時間使用serial
參數,像這樣運行一些服務器上部署:可以使用Ansible「serial」參數指定區域嗎?
- name: run update
hosts: tag_app_servers:&tag_active_servers
serial: 7
sudo: True
pre_tasks:
- name: Gathering ec2 facts
action: ec2_facts
# do the deregistration here
roles:
- some_role
- some_other_role
post_tasks:
# re-register boxes here.
事情是,Ansible認爲我所有的服務器都是一樣的(因爲它應該),並在服務器之間不區分不同的地區。所以,儘管我希望它從我所在的7個區域的每個區域取得一臺服務器,並且在這些區域並行運行更新,但Ansible可以從一個區域取出7臺服務器,並將其徹底癱瘓。這不是一個巨大的問題,因爲交通只是轉移到其他地區,但它遠非理想。在並行運行多個服務器更新時,強制它從不同地區獲取服務器的好方法是什麼?