通过Git签出时,如何将Ansible的开发分支包含在我的剧本中?

通过Git签出时,如何将Ansible的开发分支包含在我的剧本中?,git,ansible,git-submodules,Git,Ansible,Git Submodules,我一直在开发几个Ansible剧本,并要求它们与Ansible的开发版本一起运行。在我的笔记本电脑上,这不是一个问题,但我现在正在尝试用竹子设置一个CI任务,它将在任何时候更改提交给我们的Git回购时使用剧本 我的想法是在我们的存储库中为Ansible的特定版本创建一个Git子模块,这样我就可以在CI worker节点上执行Git add子模块,然后执行Git clone--recursive,将正式Ansible构建作为我的Playbook存储库的一部分 这是一个好方法吗 有更好的选择吗 我

我一直在开发几个Ansible剧本,并要求它们与Ansible的开发版本一起运行。在我的笔记本电脑上,这不是一个问题,但我现在正在尝试用竹子设置一个CI任务,它将在任何时候更改提交给我们的Git回购时使用剧本

我的想法是在我们的存储库中为Ansible的特定版本创建一个Git子模块,这样我就可以在CI worker节点上执行
Git add子模块
,然后执行
Git clone--recursive
,将正式Ansible构建作为我的Playbook存储库的一部分

  • 这是一个好方法吗
  • 有更好的选择吗

    • 我想你也可以使用 您应该创建一个文件,其中声明了所有ansible组件。然后使用git下载所有组件。这种方法可能类似于下面的
      requirements.yml
      示例 :

      这将允许您执行ansible galaxy安装-r requirements.yml
      以获取所有ansible环境组件,包括角色、剧本甚至所需ansible版本的源代码。通过这种方式,您将在一个唯一的文件下定义所有可感知的环境。

      这是一个有趣的想法,但可能有点麻烦,因为我必须安装Ansible才能使用Ansible galaxy下载。
       # ansible roles
       - src: https://gitlab.corp/teamname/ansible-roles
         path: roles/
      
       # ansible playbooks
       - src: https://gitlab.corp/teamname/ansible-playbooks
         path: playbooks/
      
       # ansible source
       - src: https://github.com/ansible/ansible
         version: devel
         path: ansible/