Gitlab + Ansible部署/管理多个集群

时间:2018-10-29 16:10:42

标签: git ansible gitlab gitlab-ci-runner

我想就如何在Git / Ansible中组织工作提供一些建议。

可以说我有一个Gitlab项目,里面有Ansible角色/剧本。 我正在使用具有ansible功能的gitlab-ci作业来部署我的集群(Elastic,Kubernetes,等等)。

当有数十个集群时,您将如何组织项目?

在每个群集的文件夹上,Ansible样式?但是在这种情况下,一种修改将适用于所有群集,并且您不想一次升级/修补所有群集。

每个集群一个分支?并在要更新时在每个分支上从master重新建立基础?

或者每个集群一个项目,从主项目分叉?

另一个问题:您将如何验证跑步者的Ansible工作能力? 将ssh密钥放入Gitlab中的secret变量中,并将其设置在dockerRunner中? 但是具有开发人员访问项目权限的任何人都可以在作业中打印变量并获取ssh密钥。

谢谢。

1 个答案:

答案 0 :(得分:0)

  • 每个集群的每个项目(k8s,elastic,...)的单独存储库
  • 针对每个环境,test,prod的单独分支
  • 在受保护的预订中使用保护的Secret变量
  • 保护所有分支,以便没有人可以直接推送,而是创建合并请求
  • 开发人员根据合并请求更改更改,以便您在合并之前检查更改,更改内容,以便不允许任何人更改ci文件以回显秘密
  • 您也可以在EE版本中使用文件锁定功能,但是受保护的分支方法更好。
  • 您也可以在跑步者上从hashicorp保险库获取秘密