我应该如何在我的生产服务器上部署 CI/CD 管道的结果
How should I deploy the result of the CI/CD pipeline on my production server
我有这个 GitLab CI/CD,它构建然后测试并将我的项目容器推送到 GitLab 容器注册成功。但是现在我想知道如何也可以自动化部署阶段。目前,我手动执行此操作,在每个成功的管道之后,我通过 SSH 连接到我的服务器并使用 运行 几个命令从 GitLab.com 容器注册表中提取最新图像,然后 运行 它们。但我也想让这一步自动化。然而,我不知道如何?
实际上,我已经看到一些从 CI/CD 管道打开 ssh 会话的示例,但感觉不够安全。所以我想知道是否有更好的方法,或者我必须实际这样做。
不是我在使用 gitlab.com 所以我的机器上没有安装 GitLab 服务器,我不能直接在它们之间共享资产
有很多方法可以实现这一点,具体取决于您的设置、其他要求、规模等。
我给你两个选择。
我。 Kubernetes
- 在某处创建集群(即控制平面)
- add your cluster to GitLab(现在 GitLab 甚至可以在 AWS 和 GCP 中为您创建集群,查看此页面)
- 将您的目标机器作为工作节点附加到集群
- 为您的应用程序创建 Kubernetes YAML 文件 \ Helm chart 并通过常规方式部署,例如
kubectl apply -f ...
或 helm install ...
,或依靠 Auto DevOps 为您完成此步骤
这很复杂,但有点 "right" 做事的方式。
二.私人 GitLab 亚军
- 转到 设置 > CI/CD > 你的 GitLab 项目或组的运行程序
- 获取注册令牌
- 在目标机器上安装你自己的 GitLab 运行器,并使用注册令牌在 GitLab 服务器上注册它,参见 example
- 给跑步者一些特定的标签
- 在您的
.gitlab-ci.yml
文件中使用该标签,参见 documentation
- 然后部署过程只是
docker pull...
和 docker run ...
的本地过程,用于您的图像
这要简单得多,但也是一种 "wrong" 方式,因为您将 CI\CD 基础架构与目标环境混合。
我有这个 GitLab CI/CD,它构建然后测试并将我的项目容器推送到 GitLab 容器注册成功。但是现在我想知道如何也可以自动化部署阶段。目前,我手动执行此操作,在每个成功的管道之后,我通过 SSH 连接到我的服务器并使用 运行 几个命令从 GitLab.com 容器注册表中提取最新图像,然后 运行 它们。但我也想让这一步自动化。然而,我不知道如何? 实际上,我已经看到一些从 CI/CD 管道打开 ssh 会话的示例,但感觉不够安全。所以我想知道是否有更好的方法,或者我必须实际这样做。
不是我在使用 gitlab.com 所以我的机器上没有安装 GitLab 服务器,我不能直接在它们之间共享资产
有很多方法可以实现这一点,具体取决于您的设置、其他要求、规模等。
我给你两个选择。
我。 Kubernetes
- 在某处创建集群(即控制平面)
- add your cluster to GitLab(现在 GitLab 甚至可以在 AWS 和 GCP 中为您创建集群,查看此页面)
- 将您的目标机器作为工作节点附加到集群
- 为您的应用程序创建 Kubernetes YAML 文件 \ Helm chart 并通过常规方式部署,例如
kubectl apply -f ...
或helm install ...
,或依靠 Auto DevOps 为您完成此步骤
这很复杂,但有点 "right" 做事的方式。
二.私人 GitLab 亚军
- 转到 设置 > CI/CD > 你的 GitLab 项目或组的运行程序
- 获取注册令牌
- 在目标机器上安装你自己的 GitLab 运行器,并使用注册令牌在 GitLab 服务器上注册它,参见 example
- 给跑步者一些特定的标签
- 在您的
.gitlab-ci.yml
文件中使用该标签,参见 documentation - 然后部署过程只是
docker pull...
和docker run ...
的本地过程,用于您的图像
这要简单得多,但也是一种 "wrong" 方式,因为您将 CI\CD 基础架构与目标环境混合。