Ansible - 任务序列1逆序

Oli*_*ier 4 ansible

我想创建两个剧本,一个用于停止环境,另一个用于启动它.

部分环境是RabbitMQ集群,其停止/启动顺序非常重要,特别是停止的最后一个节点需要是第一个启动的节点.

我想知道是否有一种方法可以指定针对组运行任务的逆序.这样我可以使用序列1应用停止,并使用序列1和反向组顺序启动.

我没有找到办法做到这一点,但是以颠倒的顺序两次(在不同的名称下)定义rabbitmq主机组,这看起来有点令人反感.

还试图遵循:

- hosts: "{ myhostsgroup | sort(reverse=False) }"
  serial: 1
Run Code Online (Sandbox Code Playgroud)

- hosts: "{ myhostsgroup | reverse }"
  serial: 1
Run Code Online (Sandbox Code Playgroud)

但是结果保持不变,无论哪种情况及其变化(反向=真,反向|列表)都是尝试的

任何帮助将不胜感激.

Kon*_*rov 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:
Run Code Online (Sandbox Code Playgroud)