Continuous integration 如何在生产服务器上部署CI/CD管道的结果

Continuous integration 如何在生产服务器上部署CI/CD管道的结果,continuous-integration,gitlab,gitlab-ci,continuous-deployment,autodeploy,Continuous Integration,Gitlab,Gitlab Ci,Continuous Deployment,Autodeploy,我有一个GitLab CI/CD,它构建然后测试并将我的项目容器成功地推送到GitLab容器注册。但现在我想知道我如何也能自动完成部署阶段。目前,我正在手动执行此操作,每次成功完成管道后,我都会使用SSH连接到服务器并运行几个命令,从GitLab.com容器注册表中提取最新的映像,然后运行它们。但我也想让这一步自动化。然而,我不知道怎么做? 实际上,我已经看到了一些从CI/CD管道打开ssh会话的示例,但它感觉不够安全。所以我想知道有没有更好的方法,或者我必须这样做 并不是因为我使用的是gitl

我有一个GitLab CI/CD,它构建然后测试并将我的项目容器成功地推送到GitLab容器注册。但现在我想知道我如何也能自动完成部署阶段。目前,我正在手动执行此操作,每次成功完成管道后,我都会使用SSH连接到服务器并运行几个命令,从GitLab.com容器注册表中提取最新的映像,然后运行它们。但我也想让这一步自动化。然而,我不知道怎么做? 实际上,我已经看到了一些从CI/CD管道打开ssh会话的示例,但它感觉不够安全。所以我想知道有没有更好的方法,或者我必须这样做


并不是因为我使用的是gitlab.com,所以我的机器上没有安装gitlab服务器,我无法在它们之间直接共享资产

实现这一点的方法有很多,具体取决于您的设置、其他要求、规模等。
我给你两个选择

一、库伯内特斯
  • 在某处创建群集(即控制平面)
  • (现在GitLab甚至可以在AWS和GCP中为您创建集群,请查看此页面)
  • 将目标计算机作为工作节点连接到群集
  • 为您的应用程序创建Kubernetes YAML文件\Helm图表,并通过常规方式进行部署,例如
    kubectl apply-f…
    Helm install…
    ,或依靠来为您执行此步骤
  • 这是一种相当复杂但有点“正确”的做事方式

    二,。私人GitLab runner
  • 转到GitLab项目或组的设置>CI/CD>跑步者
  • 获取注册令牌
  • 在目标计算机上安装您自己的GitLab runner,并使用注册令牌在GitLab服务器上注册,请参阅
  • 给跑步者一些特定的标签
  • .gitlab ci.yml
    文件中使用该标记,请参阅
  • 然后,部署过程只是一个本地过程,为您的映像执行
    docker pull…
    docker run…
  • 这要简单得多,但却是一种“错误”的方法,因为您将CI\CD基础结构与目标环境混合在一起