2017-07-25 50 views
2

我想創建兩個劇本,一個停止環境,另一個啓動它。Ansible - 任務序列1反向訂單

環境的一部分是一個RabbitMQ集羣,停止/啓動順序非常重要,特別是停止的最後一個節點需要成爲第一個啓動的節點。

我想知道是否有一種方法來指定相反的順序來針對組運行任務。 這樣我可以將序列號1應用於停止,並以序列1和反向組序列開始。

我還沒有找到辦法做到這一點,但要定義rabbitmq主機組兩次(以不同的名稱),倒序,這似乎有點令人不快。

還企圖以下:

- hosts: "{ myhostsgroup | sort(reverse=False) }" 
    serial: 1 

而且

- hosts: "{ myhostsgroup | reverse }" 
    serial: 1 

但結果保持不變,取其情況及其變化(反向=真,反向|列表)試圖

任何幫助將不勝感激。

回答

5

可以在運行時創建動態組:

--- 
- hosts: localhost 
    gather_facts: no 
    tasks: 
    - add_host: 
     name: "{{ item }}" 
     group: forward 
     with_items: "{{ groups['mygroup'] }}" 

    - add_host: 
     name: "{{ item }}" 
     group: backward 
     with_items: "{{ groups['mygroup'] | reverse | list }}" 

- hosts: forward 
    gather_facts: no 
    serial: 1 
    tasks: 
    - debug: 

- hosts: backward 
    gather_facts: no 
    serial: 1 
    tasks: 
    - debug: 
+0

感謝,正是我一直在尋找。 – Olivier