You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何指定Ansible库存中服务器组的Play执行顺序以实现零停机部署?

实现Ansible按指定顺序的零停机部署

你的问题根源在于:当指定hosts: GROUP-A, GROUP-B时,Ansible会自动对主机列表去重,实际只会按server-1、server-2的顺序各执行一次Play,无法实现同一主机上先跑GROUP-A再跑GROUP-B的重复执行逻辑。以下是两种可行的解决方案:

方案1:拆分独立Play(适合少量服务器)

直接为每个组+主机的组合创建单独的Play,严格控制执行顺序:

# 完整Playbook示例
- name: 部署GROUP-A到server-1
  hosts: server-1
  become: false
  gather_facts: true
  tasks:
    # 替换为GROUP-A的实际部署任务
    - name: 执行GROUP-A部署操作
      debug: msg="完成GROUP-A在server-1上的部署"

- name: 部署GROUP-B到server-1
  hosts: server-1
  become: false
  gather_facts: true
  tasks:
    # 替换为GROUP-B的实际部署任务
    - name: 执行GROUP-B部署操作
      debug: msg="完成GROUP-B在server-1上的部署"

- name: 部署GROUP-A到server-2
  hosts: server-2
  become: false
  gather_facts: true
  tasks:
    - name: 执行GROUP-A部署操作
      debug: msg="完成GROUP-A在server-2上的部署"

- name: 部署GROUP-B到server-2
  hosts: server-2
  become: false
  gather_facts: true
  tasks:
    - name: 执行GROUP-B部署操作
      debug: msg="完成GROUP-B在server-2上的部署"

方案2:复用任务+Serial控制(适合大量服务器)

如果服务器数量较多,可将分组任务拆分到独立文件,通过serial:1保证单主机串行执行,每个主机上先完成GROUP-A任务再执行GROUP-B任务:

  1. 创建group_a_tasks.yml(存放GROUP-A的部署任务):
- name: GROUP-A部署步骤1
  debug: msg="GROUP-A在{{ inventory_hostname }}上执行步骤1"

- name: GROUP-A部署步骤2
  debug: msg="GROUP-A在{{ inventory_hostname }}上执行步骤2"
  1. 创建group_b_tasks.yml(存放GROUP-B的部署任务):
- name: GROUP-B部署步骤1
  debug: msg="GROUP-B在{{ inventory_hostname }}上执行步骤1"

- name: GROUP-B部署步骤2
  debug: msg="GROUP-B在{{ inventory_hostname }}上执行步骤2"
  1. 主Playbook文件:
- name: 按顺序完成所有主机的分组部署
  hosts: server-1,server-2  # 也可直接用all,根据库存调整范围
  become: false
  gather_facts: true
  serial: 1  # 一次仅处理一台主机
  tasks:
    - name: 执行GROUP-A的部署任务
      include_tasks: group_a_tasks.yml
      when: inventory_hostname in groups['GROUP-A']

    - name: 执行GROUP-B的部署任务
      include_tasks: group_b_tasks.yml
      when: inventory_hostname in groups['GROUP-B']

此方案的执行顺序完全符合你的需求:

  1. server-1 → GROUP-A任务 → GROUP-B任务
  2. server-2 → GROUP-A任务 → GROUP-B任务

内容的提问来源于stack exchange,提问作者Sunny Mohite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:42:57