如何在Ansible剧本中并行运行几个角色?

时间:2018-11-16 15:20:40

标签: parallel-processing ansible

我需要在Ansible中以并发模式运行一些角色。

我通过以下方式运行ansible:

ansible-playbook install_full.yml --tags "10_clean_up,20_pull_images,30_install_postgres_11,40_install_jboss-eap-7.0" --extra-vars "ansible_user=user ansible_password=password"

剧本install_full.yml如下:

- hosts: localhost

  vars_files:
    - "vars/build.yml"

  roles:
    - { role: 10_clean_up, tags: 10_clean_up }
    - { role: 20_pull_images, tags: 20_pull_images }
    - { role: 30_install_postgres_11, tags: 30_install_postgres_11 }
    - { role: 40_install_jboss-eap-7.0, tags: 40_install_jboss-eap-7.0 }

30个和40个角色可以同时运行(以节省时间),是否可以并行运行几个角色,而不是像现在这样-按订单列表?

非常感谢!

2 个答案:

答案 0 :(得分:1)

目前不可能,许多人都要求使用该功能。来自ansible项目:https://github.com/ansible/ansible/issues/19083。 仅供参考,可以在任务上使用异步,但不能在角色上使用异步。

答案 1 :(得分:0)

您需要策略:免费使用要同时运行的一组角色。检查一下:

https://medium.com/@ibrahimgunduz34/parallel-playbook-execution-in-ansible-30799ccda4e0