ansible 并行执行

Ansible 是一种自动化配置管理工具,它可以使用多线程来并行执行任务。
Ansible 支持多种方式来实现并行执行:
在 ansible.cfg 中设置 forks 参数,用于指定最大并行线程数。
使用 -f 参数指定并行线程数。
在 inventory 文件中设置 max_procs 参数,用于指定每台主机的最大并行线程数。
在 playbook 中使用 async 和 poll 参数,在后台执行命令并在等待一段时间后检查结果。

下面是一个例子,指定并行线
指定并行线程数的例子:

  1. ansible-playbook -f 10 myplaybook.yml

这个命令会在最多10个并行线程中执行playbook中的任务.

在 inventory 文件中设置最大并行线程数:

  1. [my_group]
  2. host1 ansible_ssh_user=root ansible_ssh_port=22 max_procs=20
  3. host2 ansible_ssh_user=root ansible_ssh_port=22 max_procs=20

这样就是指定了每台主机的最大并行线程数为20.

在 playbook 中使用 async 和 poll 参数:

  1. - name: Run a command in the background
  2. command: /usr/bin/long_running_command.sh arg1 arg2
  3. async: 3600
  4. poll: 30

这个任务会在后台执行,并且每30s检查一次结果,直到3600s.

Ansible 提供了多种方式来实现并行执行,可以根据实际需求来选择使用.