0
点赞
收藏
分享

微信扫一扫

自动化运维工具Ansible(14)执行策略

策略介绍

1,默认的执行策略是按批并行处理的,假如总共 15 台主机,每次并发 5 个线程执行的策略如下:

h1/h2/h3/h4h5 -------> h6/h7/h8/h9/h10  -----> h11/h12/h13/h14/h15
全部执行完后,进入下一批 依次类推

2,从 asible2.0 开始,可以通过在 playbook 中设置 strategy 的值改变这策略,也可以在 `ansible.cfg` 配置文件中设置一个默认的策略:

[defaults]
strategy = free

 3,改变后的策略,可以前赴后继的对主机进行执行 task,执行模式如下:

      假如 h4 主机先执行完,会及时的让 下一个排队的主机进入到 执行的队列中。

h1/h2/h3/h4/h5  ------> h1/h2/h3/h6/h5 -------> h1/h2/h3/h6/h7  ----->


环境准备

准备多台机器

dbserver:192.168.19.102

[root@localhost ~]# ip addr add 192.168.19.104/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.105/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.106/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.107/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.108/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.109/24 dev ens33
[root@localhost ~]# ip addr add 192.168.19.110/24 dev ens33

添加到资产中

[root@localhost home]# vim hosts

[dbservers]
192.168.19.102
192.168.19.104
192.168.19.105
192.168.19.106
192.168.19.107
192.168.19.108
192.168.19.109
192.168.19.110

Playbook

`strategy` 默认的值的是 `linear` ,就是按批并行处理,下面是配置为 `free` 的方式实例:

- hosts: webservers
strategy: free
tasks:
- name: ping hosts
ping:

设置取消验证key

[root@localhost home]# vim /etc/ansible/ansible.cfg
host_key_checking = False

或可以使用authorized_key模块传输key

自动化运维工具Ansible(14)执行策略_centos7


执行

默认 Ansible 的执行队列有一个,就是并行执行,假如控制节点的机器有多个 CPU,并且性能较好,可以打开多个执行队列,就是并发。

- 方式一:
在 ansible.cfg 中设置

```shell
[defaults]
forks = 5
```
- 方式二:
在命令行里使用

```shell
ansible-playbook -f 3 my_playbook.yml

linear模式

自动化运维工具Ansible(14)执行策略_Ansible_02

free模式

自动化运维工具Ansible(14)执行策略_linux_03


举报

相关推荐

0 条评论