似乎所有工作都已入队,一次只能运行一个。我们怎样才能运行多个?
答案 0 :(得分:4)
共享相同库存或SCM源的作业无法同时运行。
答案 1 :(得分:4)
Tower旨在并行化作业,但有几种情况不会。
答案 2 :(得分:3)
假设您的工作由三项任务组成:
任务1:"做x",任务2:"做y",任务3:"做z"
使用ansible"做x"将在所有服务器上运行,然后"做y"将在所有服务器上运行,然后"做z"将在所有服务器上运行。
另外,我说"所有服务"但事实上,它最大限度地发挥了安塞斯"叉子"值,默认为5.在我的100服务器环境中,我将此值设置为20.此处更多内容:http://docs.ansible.com/intro_configuration.html#forks
请记住,ansible的优势在于同时在许多机器上完成工作(一组任务)。如果你想要的是在一台机器上多次运行相同的任务,那么你需要像fork或parallel这样的东西。
事实上,Ansible将尝试运行"做x"在许多机器上可以多次使用。您可以调整此行为,让整个作业在部分计算机上运行,然后再使用" serial"关键字(http://docs.ansible.com/playbooks_delegation.html#rolling-update-batch-size)。
不是分叉和串行之间的细微差别。
分叉是"每个任务"
serial is" per job" (任务集合)
David Thornton
编辑:我重新阅读了你的问题。这是关于一次运行多个作业,而不是比作业中的任务运行更多。所以我认为你对ansible-awx是正确的,但不适用于命令行。通过Web界面,您可以将作业提交到作业队列,但是您不能让ansible-awx一次运行多个任务。我认为。但是,通过命令行,如果打开多个窗口,则可以同时运行多个ansible-playbooks。你有一个ansible支持帐户吗?那些家伙都很棒恕我直言,他们花了很多时间来回答我的问题(比如你的问题)。
答案 3 :(得分:0)
可以从Tower执行同时作业。作业模板具有"启用并发作业"选项。参见" 15.4节。 Job Concurrency"在http://www.oracle.com/technetwork/database/database-technologies/bdc/big-data-connectors/downloads/index.html。
答案 4 :(得分:0)
如果我在一台运行同步模式管理的服务器上有3个不同的任务,则将3个任务分配给一个作业ID,并且每个任务都执行一次,而另一个则消耗大量时间。
在低于2.5的Ansible版本中,我们可以为3个不同的任务获得3个作业ID,并且可以节省大量时间并同时开始执行。这种类型称为异步模式。