GitLab如何使CI/CD仅限指定用户使用
GitLab的CI/CD是一个很好的部署工具,我们在使用的时候发现项目的main权限同样可以执行CI/CD的部署,我们所期望的是只有运维人员来进行自动部署,查找资料时发现使用环境功能可以有效的隔离成员使用CI/CD的问题,但是环境需要收费,在摸索了一段时间后尝试使用API触发流水线也可以做到隔离人员的效果,尝试成功后写下此文章进行记录。
-
API触发流水线的使用
API触发流水线实际上就是通过GitLab开放的restful API来进行调用,从而执行job,在项目的设置–>CI/CD–>流水线触发器中有详细的介绍如何使用。
-
如何通过触发器流水线来实现CI/CD人员隔离
我通过建立一个专门部署应用的的项目,里面专门用来放测试环境和生产环境的CI/CD的yaml配置文件,通过include来区分每个项目的job流程。
但是这样会有一个问题,全部放在一个项目中会无法确定使用哪个runner来进行部署,所有我在include中的yaml配置文件中通过only来判断变量来确定是否进行触发,这样可以有效的区分每个项目的job流程
Project变量就通过每个单独项目中的CI/CD进行触发API流水线来传递对应的项目值,这样我们就可以确保在使用不同的项目命名空间也能使用不同变量来继续执行下去