Ansible:如何在不同主机上并行部署角色

问题描述 投票:0回答:1

我有下一个main.yml,我想一个角色一个接一个地运行,但对于不同的主机并行运行:例如,首先,我想在paralel中的所有主机上运行“ cluster-prerequisites”角色,完成后再运行“ docker”角色,等等。

- hosts: masters:private_agent:public_agent
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: cluster_prerequisites

- hosts: bootstrap:masters:private_agent:public_agent
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: docker

- hosts: bootstrap
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: prepare_bootstrap

- hosts: masters
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: run_masters

- hosts: private_agent
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: run_private_agents

- hosts: public_agent
  remote_user: "{{user}}"
  become: True
  serial: 1
  roles:
  - role: run_public_agents
ansible ansible-2.x
1个回答
1
投票

Rolling Update Batch Size章节开始:

默认情况下,Ansible将尝试并行管理播放中引用的所有计算机。对于滚动更新用例,您可以使用serial关键字来定义Ansible一次应管理多少个主机。

因此,如果您从游戏中删除serial: 1,Ansible将在所有游戏中的主机上并行运行任务。

通过设置serial: 1,您告诉Ansible一对一地托管主机,并且仅在前一个任务完成所有任务后才移至下一个。

通常,您要在一堆后端服务器上进行串行运行以批量更新它们,以防止服务中断,因为部分服务器仍可以满足客户端的请求。

© www.soinside.com 2019 - 2024. All rights reserved.