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

时间:2015-12-09 18:37:57

标签: git ansible git-submodules

我一直在开发几本Ansible剧本,要求他们使用Ansible的开发版本。在我的笔记本电脑上,这不是问题,但我现在正尝试在Bamboo中设置CI任务,这将消耗Playbooks以及任何时候我们的Git仓库所做的更改。

我的想法是在我们的存储库中创建一个特定版本的Ansible的Git子模块,这样我可以做一个git add submodule <ansible git repo>然后git clone --recursive来下载官方的Ansible构建作为我的Playbook在CI工作节点上的存储库。

  • 这是解决这个问题的好方法吗?
  • 有更好的选择吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以使用ansible-galaxy做类似的事情 您应该创建一个包含在其中声明的所有ansible组件的文件。然后使用git下载所有组件。此方法可能类似于以下requirements.yml示例 :

 # 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/

这将允许您执行ansible-galaxy install -r requirements.yml 以获取所有ansible环境组件,包括角色,playbooks甚至是您想要的ansible版本的源。通过这种方式,您将在一个唯一文件下定义所有可见环境。