可以同时运行多个剧本吗?

时间:2016-09-12 09:59:47

标签: ansible ansible-playbook ansible-2.x

- name: "API"
hosts: api
vars:
   platform: "{{ application.api }}"
vars_files:
- vars/application-vars.yml
tasks:
 - include: tasks/application-install.yml

- name: "JOBS"
hosts: jobs 
vars:
   platform: "{{ application.jobs }}"
vars_files:
   - vars/application-vars.yml
tasks:
   - include: tasks/application-install.yml
像之前描述的那样的playbook,我可以在并行方式的同时在差异主机上执行这个差异任务吗?

2 个答案:

答案 0 :(得分:1)

不确定你真正想要什么,但我将它合并为单人游戏:

- hosts: api:jobs
  tasks:
    - include: tasks/application-install.yml

将组变量添加到广告资源中:

[api:vars]
platform="{{ application.api }}"
[jobs:vars]
platform="{{ application.jobs }}"

这样您就可以同时在所有主机上运行您的Playbook,并且您也可以使用--limit选项仅选择apijobs组。

答案 1 :(得分:0)

您可以使用“ansible-playbook [OPTIONS] *.yml”命令运行更多剧本。这将不以并行方式执行所有剧本,而是以串行方式执行,因此首先执行一个剧本,然后执行另一个剧本。如果您有很多剧本,此命令会很有帮助。

我不知道并行执行更多剧本的方法。