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