相关疑难解决方法(0)

Ansible - 任务序列1逆序

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

部分环境是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)

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

任何帮助将不胜感激.

ansible

4
推荐指数
1
解决办法
3083
查看次数

仅选择 ansible 组中的 1 个节点

我有一个 ansible 清单文件,如下所示:

[database]
172.29.225.95 is_master=true
172.29.225.93 is_master=false
172.29.225.94 is_master=false
Run Code Online (Sandbox Code Playgroud)

我只想在主节点上运行我的剧本,172.29.225.95但是 Ansible 中是否有一种方法可以简单地选择一个我想在其上运行剧本的节点?

我试过一个肮脏的黑客。它只是在我的库存文件中添加一个新条目并仅使用该组。

[database-master]
172.29.225.95
Run Code Online (Sandbox Code Playgroud)

进而

- name: Perform Health Checks.
  hosts: database-master
  tasks:
    - name: Check Postgres cluster status.
      shell: /usr/efm-2.0/bin/efm cluster-status efm
      register: output
Run Code Online (Sandbox Code Playgroud)

但我觉得这只是一种解决方法,而不是一个可靠的解决方案。所以只与[database]组一起工作,我可以让 Ansible 只运行剧本172.29.225.95吗?

ansible

2
推荐指数
2
解决办法
4341
查看次数

标签 统计

ansible ×2