我想创建两个剧本,一个用于停止环境,另一个用于启动它。
部分环境是RabbitMQ集群,其停止/启动顺序非常重要,特别是停止的最后一个节点需要是第一个启动的节点。
我想知道是否有办法指定针对组运行任务的逆序。 这样我可以使用序列1应用停止,并使用序列1和反向组顺序启动。
我还没有找到办法做到这一点,但是以颠倒的顺序两次(在不同的名字下)定义了rabbitmq主机组,这看起来有点令人反感。
还尝试了以下内容:
- hosts: "{ myhostsgroup | sort(reverse=False) }"
serial: 1
和
- hosts: "{ myhostsgroup | reverse }"
serial: 1
但结果保持不变,无论哪种情况及其变化(反向=真,反向|列表)都在尝试
非常感谢任何帮助。
答案 0 :(得分:6)
您可以在运行时创建动态组:
---
- 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: