ansible-playbook 实现服务滚动更新实例
playbook 例子如下
- hosts: all
become: yes
serial: 33%
gather_facts: no
tasks:
- name: Checking group_vars/all.yml
stat:
path: group_vars/all.yml
delegate_to: localhost
run_once: yes
become: no
register: result
- fail:
msg: "Please create group_vars/all.yml from group_vars/all.yml.example, and edit it to suit your environment before your deploy."
when: result.stat.exists == false
delegate_to: localhost
run_once: yes
become: no
- hosts: all
become: yes
serial: 33%
roles:
- init
对于上述例子:
- 默认情况下,Ansible 将尝试并行管理 playbook 中所有的机器。对于滚动更新用例,可以使用 serial 关键字定义 Ansible 一次应管理多少主机
- 将 serial 关键字指定为百分比,表示每次并行执行的主机数占总数的比例
- 将 serial 关键字指定为数字,如 2,表示每次并行执行的主机数为 2,多批次直到执行完成。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于