【发布时间】:2021-12-14 21:48:16
【问题描述】:
由于需要一些来自 ansible-galaxy 的依赖项,以及其他已安装的软件(如 ssh-pass),我无法找到解决顺序运行多个 playbook 的方法。
有没有办法解决这个问题,或者这是将来要添加的功能?我已经看到它建议可以将多个 playbook 放在一个 shell 脚本中,但这肯定是 ansible 等配置管理程序的工作吗?
【问题讨论】:
标签: ansible dependencies
由于需要一些来自 ansible-galaxy 的依赖项,以及其他已安装的软件(如 ssh-pass),我无法找到解决顺序运行多个 playbook 的方法。
有没有办法解决这个问题,或者这是将来要添加的功能?我已经看到它建议可以将多个 playbook 放在一个 shell 脚本中,但这肯定是 ansible 等配置管理程序的工作吗?
【问题讨论】:
标签: ansible dependencies
您可以使用import_playbook,这只是一个没有任何其他功能的导入。例如下面的三个剧本
shell> cat playA.yml
- hosts: localhost
tasks:
- debug:
msg: Play A
shell> cat playB.yml
- hosts: localhost
tasks:
- debug:
msg: Play B
shell> cat playC.yml
- hosts: localhost
tasks:
- debug:
msg: Play C
可以放在一本剧本中
shell> cat playABC.yml
- hosts: localhost
tasks:
- debug:
msg: Play A
- hosts: localhost
tasks:
- debug:
msg: Play B
- hosts: localhost
tasks:
- debug:
msg: Play C
,或者可以导入到一个剧本中
shell> cat playABC-import.yml
- import_playbook: playA.yml
- import_playbook: playB.yml
- import_playbook: playC.yml
两个选项给出相同的结果。如果您需要更智能地控制剧本,请使用ansible-runner。
【讨论】: