Ansible 如何将收藏与playbook一起保存,并推动拥有github回购?

Ansible 如何将收藏与playbook一起保存,并推动拥有github回购?,ansible,Ansible,我目前的剧本就是这样组织的 projectroot | |--ubuntu2004 | |--00_setup | |--vars |--playbook.yml |--readme.md 因为我的剧本使用ansible.posix,我还将剧本提交到github回购中。我希望在本例中,是否有一种方法将所需的集合作为一项要求包含在ansible.posix中,以

我目前的剧本就是这样组织的

projectroot
 |
 |--ubuntu2004
       |
       |--00_setup
             |
             |--vars
             |--playbook.yml
             |--readme.md
因为我的剧本使用ansible.posix,我还将剧本提交到github回购中。我希望在本例中,是否有一种方法将所需的集合作为一项要求包含在ansible.posix中,以及如何安装它

我看到有多种方法


我想知道当使用github存储库作为playbook的版本控制时,什么样的最佳实践方式才有意义?

有几种方法可以做到这一点。我建议使用需求文件,因为它是最容易设置和管理的

  • 创建用于安装所需模块的需求文件

    最好的方法是创建一个需求文件,引用playbook需要的集合。然后可以使用它安装所需的集合和/或角色

    ---
    收藏:
    -名称:ansible.posix
    
  • 将模块存储在存储库中,并通过ansible galaxy安装

    您可以将模块上载到git存储库,然后安装它。我不建议这样做,因为如果有可用的工具来管理依赖项,那么在源代码中存储依赖项就不是一个好的做法

    ansible galaxy collection安装
    吉特+https://github.com/organization/repo_name.git,德维尔
    
  • 通过playbook安装模块

    我已经设置了一个主节点,在Ansible上运行playbook,并通过playbook中的
    命令
    任务安装了模块。只要您不引用/包含任何使用该模块的任务或重头戏,就可以正常工作

    -名称:安装ansible posix模块
    命令:ansible galaxy collection安装ansible.posix
    

  • 理想的方法是在执行任务之前,必须在playbook上安装所需的模块。但是,无法忽略模块丢失时抛出的错误,因此您必须创建一个不包含/引用任何使用该模块的任务的剧本。

    我认为这也是更好的方法@rpm192,因此我将requirements.yml放在playbook.yml旁边?是的,创建一个
    requirements.yml
    文件并将其放入源代码管理中。通常位于根目录或playbook所在的任何位置。