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

clo*_*udy 8 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"
Run Code Online (Sandbox Code Playgroud)

剧本 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 }
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

obl*_*lio -2

您需要strategy: free同时运行一组角色。看一下这个:

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

  • 这是不正确的,自由策略是告诉多个节点它们可以独立运行。每个节点都可以执行分配的步骤并“尽可能快地运行直到游戏结束:” - 这无助于在单个节点上并行运行角色。请参阅 https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html (3认同)