【问题标题】:Ansible: Necessity of running multiple playbooks?Ansible:运行多个剧本的必要性?
【发布时间】:2021-12-14 21:48:16
【问题描述】:

由于需要一些来自 ansible-galaxy 的依赖项,以及其他已安装的软件(如 ssh-pass),我无法找到解决顺序运行多个 playbook 的方法。

有没有办法解决这个问题,或者这是将来要添加的功能?我已经看到它建议可以将多个 playbook 放在一个 shell 脚本中,但这肯定是 ansible 等配置管理程序的工作吗?

【问题讨论】:

    标签: ansible dependencies


    【解决方案1】:

    您可以使用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

    【讨论】:

    • 谢谢。当我将安装 ssh-pass 放入单独的剧本时,它起作用了。但是,我尝试在单独的剧本中运行 ansible-galaxy 集合安装,但这仍然不起作用。
    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    相关资源
    最近更新 更多