Ansible 系列发布:haproxy 中两个不同后端的 50%
Ansible release with serial: 50% for two different backend in haproxy
我在haproxy中有如下配置。
backend 1
machine-1 machine-1.com:8080
machine-2 machine-2.com:8080
machine-3 machine-3.com:8080
machine-4 machine-4.com:8080
machine-5 machine-5.com:8080
machine-6 machine-6.com:8080
machine-7 machine-7.com:8080
machine-8 machine-8.com:8080
machine-9 machine-9.com:8080
machine-10 machine-10.com:8080
backend 2
machine-11 machine-11.com:8080
machine-12 machine-12.com:8080
Serial is set to 50% in ansible rolling deployment
。我们也在这个 window 中将机器的状态更改为维护。因此 ansible 在第一次将机器 1-6 置于维护模式,而在第二次将 7-12 设置为维护模式。
因为它把7-12作为第二次维护;后端 2 集群没有在线节点来承担流量。这会导致应用程序端出现大量问题。
我应该如何解决这个问题?我正在使用 ansible 2.0.0.
编辑 1
我能想到的两个方案
- 为两个后端制作两个版本
- 用后端 2 中的一台机器替换 1-6 中的一台机器,比如 11。
正在寻找这些以外的解决方案。更多的是使用ansible来解决它。
为每个后端创建 host groups
并 运行 在单独的 运行 中为每个后端组创建更新将是恕我直言的最佳解决方案。如果没有办法做到这一点,可以将批量大小定义为 list,因为 Ansible 2.2.
所以这应该有效:
- name: test play
hosts: backend servers.
serial:
- 5
- 1
我在haproxy中有如下配置。
backend 1
machine-1 machine-1.com:8080
machine-2 machine-2.com:8080
machine-3 machine-3.com:8080
machine-4 machine-4.com:8080
machine-5 machine-5.com:8080
machine-6 machine-6.com:8080
machine-7 machine-7.com:8080
machine-8 machine-8.com:8080
machine-9 machine-9.com:8080
machine-10 machine-10.com:8080
backend 2
machine-11 machine-11.com:8080
machine-12 machine-12.com:8080
Serial is set to 50% in ansible rolling deployment
。我们也在这个 window 中将机器的状态更改为维护。因此 ansible 在第一次将机器 1-6 置于维护模式,而在第二次将 7-12 设置为维护模式。
因为它把7-12作为第二次维护;后端 2 集群没有在线节点来承担流量。这会导致应用程序端出现大量问题。
我应该如何解决这个问题?我正在使用 ansible 2.0.0.
编辑 1
我能想到的两个方案
- 为两个后端制作两个版本
- 用后端 2 中的一台机器替换 1-6 中的一台机器,比如 11。
正在寻找这些以外的解决方案。更多的是使用ansible来解决它。
为每个后端创建 host groups
并 运行 在单独的 运行 中为每个后端组创建更新将是恕我直言的最佳解决方案。如果没有办法做到这一点,可以将批量大小定义为 list,因为 Ansible 2.2.
所以这应该有效:
- name: test play
hosts: backend servers.
serial:
- 5
- 1