GitLab 在没有 SSH 的情况下部署到服务器
GitLab deploy to server without SSH
我开始学习GitLab CI,至今不明白GitLab runner的概念:
- 有一段视频,其中有人在“prod”服务器上安装了 gitlab-runner,然后使用来自 GitLab 的令牌对其进行了注册,仅此而已。他的 .gitlab-ci.yml 通过安装和注册的运行器在服务器上执行。为什么没有SSH?
- 如果我们通过 SSH 连接并执行部署命令,如果我们可以使用共享的,为什么还需要安装 gitlab-runner?
“考虑到执行这些命令的 GitLab 运行ner 是完全相同的服务器,在您的服务器上使用 SSH 运行 这些命令似乎很奇怪。但它是必需的,因为运行ner 在 Docker 容器中执行命令,因此如果您在不使用 SSH 的情况下执行命令,您将在容器而不是服务器内部署。有人可能会争辩说,而不是使用Docker 作为 运行ner 执行器,您可以使用 shell 执行器来 运行 主机本身的命令。但是,这会对您的管道产生约束,即运行ner 必须与您要部署到的服务器是同一台服务器。这不是一种可持续和可扩展的解决方案,因为有一天您可能想将应用程序迁移到另一台服务器或使用不同的 运行ner 服务器。在任何情况下,使用 SSH 执行部署命令都是有意义的,可能是出于技术或与迁移相关的原因。” (с) 迈克·诺蒂格
我开始学习GitLab CI,至今不明白GitLab runner的概念:
- 有一段视频,其中有人在“prod”服务器上安装了 gitlab-runner,然后使用来自 GitLab 的令牌对其进行了注册,仅此而已。他的 .gitlab-ci.yml 通过安装和注册的运行器在服务器上执行。为什么没有SSH?
- 如果我们通过 SSH 连接并执行部署命令,如果我们可以使用共享的,为什么还需要安装 gitlab-runner?
“考虑到执行这些命令的 GitLab 运行ner 是完全相同的服务器,在您的服务器上使用 SSH 运行 这些命令似乎很奇怪。但它是必需的,因为运行ner 在 Docker 容器中执行命令,因此如果您在不使用 SSH 的情况下执行命令,您将在容器而不是服务器内部署。有人可能会争辩说,而不是使用Docker 作为 运行ner 执行器,您可以使用 shell 执行器来 运行 主机本身的命令。但是,这会对您的管道产生约束,即运行ner 必须与您要部署到的服务器是同一台服务器。这不是一种可持续和可扩展的解决方案,因为有一天您可能想将应用程序迁移到另一台服务器或使用不同的 运行ner 服务器。在任何情况下,使用 SSH 执行部署命令都是有意义的,可能是出于技术或与迁移相关的原因。” (с) 迈克·诺蒂格