如何并行运行多个剧本?

时间:2021-02-15 04:31:12

标签: ansible

我在一本剧本中包含了多本剧本。现在当我玩它时,它从第一个开始,当第一个完成时然后第二个运行。 我想并行播放所有包含的剧本。 这是我的剧本:

---
- name: deploy A
  import_playbook: deploy-A.yml
- name: deploy B
  import_playbook: deploy-B.yml
- name: deploy C
  import_playbook: deploy-C.yml
- name: deploy D
  import_playbook: deploy-D.yml

2 个答案:

答案 0 :(得分:1)

剧本是在多台主机上运行的“一个进程”——更准确地说——一个任务在多台主机上运行,​​但任务是逐步运行的。

Ansible 并非旨在在一个进程中同时运行多个剧本 - 例如,因为不同剧本的任务不同,并且剧本 1 和剧本 2 中没有同时执行步骤“taskA”。

您需要在一个单独的进程中运行每个剧本(例如 ansible-playbook ... &)。

答案 1 :(得分:1)

<块引用>

我想同时播放所有包含的剧本

这不可能。

最简单的方法是将剧本拆分为不同的 .yml 文件,并从不同的终端执行每个文件。

或者使用 ansible-parrelel pip package 运行它们。