Ansible 我需要什么;壳牌公司;如果要部署gitlab+;在同一个盒子上?

Ansible 我需要什么;壳牌公司;如果要部署gitlab+;在同一个盒子上?,ansible,continuous-integration,gitlab,devops,cd,Ansible,Continuous Integration,Gitlab,Devops,Cd,我看过gitlab关于使用的演示。如果我想在prem上做同样的事情,这行得通吗?在prem上设置开源gitlab,将bash设置为shell runner,并使用shell runner在网络设备上执行ansible playbooks 写下这个答案后,我现在认为这个问题可能会因为过于宽泛或主要基于观点而被终结;但是,我已经花了很大的力气把它打印出来了,所以我们开始吧 在prem上设置开源gitlab,将bash设置为shell runner,并使用shell runner在网络设备上执行ans

我看过gitlab关于使用的演示。如果我想在prem上做同样的事情,这行得通吗?在prem上设置开源gitlab,将bash设置为shell runner,并使用shell runner在网络设备上执行ansible playbooks

写下这个答案后,我现在认为这个问题可能会因为过于宽泛或主要基于观点而被终结;但是,我已经花了很大的力气把它打印出来了,所以我们开始吧

在prem上设置开源gitlab,将bash设置为shell runner,并使用shell runner在网络设备上执行ansible playbooks

我相信这是可能的,或者您可以将ansible以及您的剧本所需的任何python模块安装到docker映像中,然后使用docker executor在容器中运行剧本。使用也是可能的,因为他们有

使用docker runner的优点是,您不必在每个runner主机上预安装ansible(及其依赖项);使用docker runner的缺点是,我可以想象容器内部的ssh身份验证会变得很奇怪

# hypothetical .gitlab-ci.yml
stages:
- apply
run ansible playbook:
  stage: apply
  image: docker.example.com/my-ansible:2.8
  scripts:
  - ansible-playbook -i ./some-inventory -v playbook.yml
使用像AWX(或Tower)这样的专用系统的优点是,运行这些playbook的库存也是系统中一个正式管理的实体,不需要向GitLab教授如何将其提供给playbook。身份验证也是如此,因为AWX对托管SSH密钥对具有一流的支持,该密钥对只能有条件地授予某些playbook项目


您仍然可以通过使用或启动作业模板使GitLab与Tower集成,该作业模板将其项目配置为在启动前执行SCM更新

感谢您的见解!