我在一本剧本中包含了多本剧本。现在当我玩它时,它从第一个开始,当第一个完成时然后第二个运行。 我想并行播放所有包含的剧本。 这是我的剧本:
---
- 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
答案 0 :(得分:1)
剧本是在多台主机上运行的“一个进程”——更准确地说——一个任务在多台主机上运行,但任务是逐步运行的。
Ansible 并非旨在在一个进程中同时运行多个剧本 - 例如,因为不同剧本的任务不同,并且剧本 1 和剧本 2 中没有同时执行步骤“taskA”。
您需要在一个单独的进程中运行每个剧本(例如 ansible-playbook ... &
)。
答案 1 :(得分:1)
我想同时播放所有包含的剧本
这不可能。
最简单的方法是将剧本拆分为不同的 .yml 文件,并从不同的终端执行每个文件。
或者使用 ansible-parrelel pip package 运行它们。