gpt4 book ai didi

gitlab-ci - Gitlab-Runner 部署到多台服务器

转载 作者:行者123 更新时间:2023-12-02 00:39:56 27 4
gpt4 key购买 nike

我得到了以下环境和设置:

  • 3 个负载平衡的生产服务器和
  • 一台开发服务器
  • 对我的开发服务器进行有效的自动部署
    • 一个 gitlab-runner,它通过 ssh 连接到我的开发服务器并拉取开发分支
    • 一个仅限于我的开发分支的 gitlab-ci.yml

我怎样才能实现:

  • 如果我推送到我的开发分支,进一步自动部署到我的开发服务器
  • 如果我推送到我的主分支,自动部署到我的 3 个生产服务器

问题是基于我当前的设置,其中出现了以下问题

  • 我可以让 gitlab-runner 只在本地运行吗(也不在 docker 容器中,因为我还没有安装),这样它就可以根据 gitlab-ci.yml 在分支上有所不同并部署到特定服务器或
  • 我可以安装多个仅在特定分支上执行操作的 gitlab-runners 吗?

或者是否有其他解决方案可以让我实现我的计划?

最佳答案

"Can I let a gitlab-runner run just locally (also not in a docker container because I havn't installed one) so that its just up to thegitlab-ci.yml to differ on branches and deploy to the specificservers"

是的,将本地运行者注册为 specific runnersShell executors在您要部署到的机器上,这样它们就可以像您现在使用 SSH 一样运行本地命令,并且只有您的特定项目可以使用它们。然后看看关于 tags 的下一个子答案.

"Can I install multiple gitlab-runners which are taking aktion on just specific branches?"

使用 tags将某些工作固定到运行者(例如您的部署工作)或使用 only or except将工作固定到分支机构或标签。 (例如,您的 deploy_prod 作业仅在 master 分支上运行)

示例 .gitlab-ci.yml 文件(摘要):

deploy-dev:
tags:
- dev-runner
only:
- dev-branch
script:
- cd mydir
- git pull

deploy-prod:
tags:
- prod-runner
only:
- master
script:
- cd mydir
- git pull

关于gitlab-ci - Gitlab-Runner 部署到多台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47457803/

27 4 0