1

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

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

4

1 回答 1

2

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

一、Kubernetes

  1. 在某处创建集群(即控制平面)
  2. 将您的集群添加到 GitLab(现在 GitLab 甚至可以在 AWS 和 GCP 中为您创建集群,请查看此页面)
  3. 将目标机器作为工作节点附加到集群
  4. 为您的应用程序创建 Kubernetes YAML 文件 \ Helm 图表并通过常规方式部署,例如kubectl apply -f ...helm install ...,或依靠Auto DevOps为您执行此步骤

这是相当复杂但有点“正确”的做事方式。

二、私人 GitLab 跑步者

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

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

于 2020-02-21T19:50:50.143 回答