是否有可能在Ansible中asynchronous运行site.yml中定义的angular色而不打开千位terminal?

目前在site.yml中定义了多个angular色:

- include: role1.yml - include: role2.yml - include: role3.yml - include: role4.yml - include: role5.yml 

并通过发出以下命令同步运行:

 ansible-playbook -i testing site.yml -u root --vault-password-file ~/.vault_pass.txt 

如何一次性运行site.yml中定义的angular色?

讨论

它可以通过打开多个terminalasynchronous运行所有angular色并运行:

 ansible-playbook -i testing playbook1.yml -u root --vault-password-file ~/.vault_pass.txt ansible-playbook -i testing playbook2.yml -u root --vault-password-file ~/.vault_pass.txt ansible-playbook -i testing playbook3.yml -u root --vault-password-file ~/.vault_pass.txt ansible-playbook -i testing playbook4.yml -u root --vault-password-file ~/.vault_pass.txt ansible-playbook -i testing playbook5.yml -u root --vault-password-file ~/.vault_pass.txt 

看看剧本策略 :

在2.0版本中,我们增加了一种新的方法来控制游戏执行,策略,默认情况下,游戏仍然会像以前一样运行,我们称之为线性策略。 所有主机将在任何主机启动下一个任务之前运行每个任务,并使用分叉数量(缺省值5)进行并行化。

值得一试的是设定free策略:

第二个策略是自由的,它允许每个主机以尽可能快的速度运行。

 - hosts: all strategy: free 

还要检查ansible.cfg的forks设置:

这是与远程主机通信时产生的并行进程的默认数量。 自Ansible 1.3以来,叉号自动限制为可能的主机数量,所以这实际上是您认为可以处理多lessnetworking和CPU负载的限制。 许多用户可能将其设置为50,一些将其设置为500或更多。 如果您有大量的主机,更高的值将使所有这些主机上的操作更快完成。 默认是非常非常保守的:

 forks=5