首页 文章

Gitlab-Runner部署到多个服务器

提问于
浏览
0

我有以下环境和设置:

  • 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 回答

  • 2

    “我可以让gitlab-runner在本地运行(也不是在docker容器中,因为我没有安装它),所以它只需要gitlab-ci.yml在分支上有所不同并部署到特定服务器”

    是的,在要部署的计算机上将本地运行程序注册为specific runners并使用Shell executors,这样就可以像现在使用SSH一样运行本地命令,只有特定项目才能使用它们 . 然后看看关于tags的下一个子答案 .

    “我可以安装多个gitlab运行器,这些运行器只针对特定的分支机构吗?”

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

    Example .gitlab-ci.yml file (abstract):

    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
    

相关问题