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

时间:2020-02-21 18:33:25

标签: continuous-integration gitlab gitlab-ci continuous-deployment autodeploy

我拥有此GitLab CI / CD,该CD / C可以构建然后进行测试并将我的项目容器成功推送到GitLab容器注册。但是现在我想知道如何也可以自动完成部署阶段。当前,我正在手动执行此操作,并且在成功完成每个管道之后,我通过SSH到服务器并运行一些命令来从GitLab.com容器注册表中提取最新图像,然后运行它们。但是我也想使这一步骤自动化。可是,我不知道怎么办? 实际上,我已经看到了一些从CI / CD管道打开ssh会话的示例,但感觉不够安全。所以我想知道是否有更好的方法,或者我必须真正做到这一点。

不是我正在使用gitlab.com,所以我的计算机上未安装GitLab服务器,因此我无法直接在它们之间共享资产

1 个答案:

答案 0 :(得分:2)

有多种方法可以实现此目的,具体取决于您的设置,其他要求,规模等。
我只给你两个选择。

I。 Kubernetes

  1. 在某个地方创建集群(即控制平面)
  2. add your cluster to GitLab(现在,GitLab甚至可以在AWS和GCP中为您创建集群,请检查此页面)
  3. 将目标计算机作为辅助节点连接到集群
  4. 为您的应用程序创建Kubernetes YAML文件\ Helm图表,并通过通常的方式进行部署,例如kubectl apply -f ...helm install ...,或依靠Auto DevOps为您完成此步骤

这是非常复杂的事情,但是有点“正确”的做事方式。

II。私人GitLab赛跑者

  1. 转到GitLab项目或组的设置> CI / CD>运行器
  2. 获取注册令牌
  3. 直接在目标计算机上安装自己的GitLab运行程序,然后使用注册令牌在GitLab服务器上注册它,请参见example
  4. 给跑步者一些特定的标签
  5. 在您的.gitlab-ci.yml文件中使用该标签,请参见documentation
  6. 然后,部署过程只是图像的docker pull...docker run ...的本地过程

这要简单得多,但这是“错误的”方法,因为您将CI \ CD基础结构与目标环境混合在一起。