我有以下环境和设置:
-
3负载均衡的 生产环境 服务器和
-
一个开发服务器
-
使用自动部署到我的开发服务器
-
一个gitlab-runner,它通过ssh连接到我的dev-server并拉动dev-branch和
-
gitlab-ci.yml仅限于我的dev-branch
我怎样才能实现:
如果我进入我的开发分支,
- 进一步自动部署到我的开发服务器
如果我进入我的主分支, - 自动部署到我的3个 生产环境 服务器
The question is based on my current setup where following questions came up
-
我可以让gitlab-runner在本地运行(也不在docker容器中,因为我没有安装一个)所以它只需要gitlab-ci.yml在分支上不同并部署到特定服务器或
-
我可以安装多个gitlab-runner,它们只针对特定的分支机构进行操作吗?
还是有另一种解决方案让我实现我的计划?
1 回答
是的,在要部署的计算机上将本地运行程序注册为specific runners并使用Shell executors,这样就可以像现在使用SSH一样运行本地命令,只有特定项目才能使用它们 . 然后看看关于tags的下一个子答案 .
使用tags将某些作业固定到跑步者(例如您的部署作业)或使用only or except将作业固定到分支或标签 . (例如,您的deploy_prod作业仅在
master
分支上运行)Example .gitlab-ci.yml file (abstract):