我如何将 Gitlab Runner 与物理 server/environment 相关联?
How do I associate a Gitlab Runner with a physical server/environment?
我正在尝试设置一个由 3 个阶段(开发、暂存和生产)组成的开发环境,每个阶段都部署到自己的物理服务器上。我有一个额外的服务器配置了 GitLab 来处理源代码控制。我们有一个名为“main”的分支,供开发人员使用。通常,开发人员会从 main 分支出来,处理他们的更改,然后合并回 main 触发管道,该管道使用带有 shell 执行程序的 gitlab-运行ner 更新开发服务器。
一旦一些基本测试 运行 成功,我们现在希望这些提交进入临时服务器。我正在尝试在我们现有管道的末尾添加一个手动步骤,以便如果认为最后一次提交已准备好继续进行更深入的测试,开发人员可以单击 GitLab Pipelines 中的 运行 按钮触发部署到暂存服务器。
我想不通的是,在执行部署作业时,应该使用与登台服务器关联的 运行ner 而不是开发中的 运行ning服务器。我查看了环境,但没有找到 link 特定环境的 运行 方法。我在想,用“Stage-version”之类的东西标记提交可能会起作用,看起来可能会重新 运行 开发服务器上的管道。如果物理服务器设置是一项硬性要求,如何实现这一点。我知道能够使用容器会使这更容易,但由于其他原因我还不能这样做。
根据您的描述,您应该能够对所有三种环境使用相同的 运行ner(s)。换句话说,Gitlab 中没有任何东西阻止你使用相同的 运行ner(s)。但是,如果您有商业理由这样做,那么您正在寻找的是 GitLab CI 标签(不是 git 标签)。
注册 Runner 时,您可以为特定的 运行ner 指定标签。如果管道作业具有相同的标签,则该作业只能 运行 在具有该标签的 运行 人上。例如,如果只有某个 运行 人安装了工作需要的某些特定软件,或者如果 运行 人可以访问外部资源而其他人没有,等等,这将很有用。
这是来自 the docs 的示例:
windows job:
stage:
- build
tags:
- windows
script:
- echo Hello, %USERNAME%!
osx job:
stage:
- build
tags:
- osx
script:
- echo "Hello, $USER!"
在此示例中,windows job
具有标签 windows
。据推测,带有 windows
标签的 运行ner 在 Windows 框上,而 osx job
运行s 在 Mac 上。
我正在尝试设置一个由 3 个阶段(开发、暂存和生产)组成的开发环境,每个阶段都部署到自己的物理服务器上。我有一个额外的服务器配置了 GitLab 来处理源代码控制。我们有一个名为“main”的分支,供开发人员使用。通常,开发人员会从 main 分支出来,处理他们的更改,然后合并回 main 触发管道,该管道使用带有 shell 执行程序的 gitlab-运行ner 更新开发服务器。 一旦一些基本测试 运行 成功,我们现在希望这些提交进入临时服务器。我正在尝试在我们现有管道的末尾添加一个手动步骤,以便如果认为最后一次提交已准备好继续进行更深入的测试,开发人员可以单击 GitLab Pipelines 中的 运行 按钮触发部署到暂存服务器。
我想不通的是,在执行部署作业时,应该使用与登台服务器关联的 运行ner 而不是开发中的 运行ning服务器。我查看了环境,但没有找到 link 特定环境的 运行 方法。我在想,用“Stage-version”之类的东西标记提交可能会起作用,看起来可能会重新 运行 开发服务器上的管道。如果物理服务器设置是一项硬性要求,如何实现这一点。我知道能够使用容器会使这更容易,但由于其他原因我还不能这样做。
根据您的描述,您应该能够对所有三种环境使用相同的 运行ner(s)。换句话说,Gitlab 中没有任何东西阻止你使用相同的 运行ner(s)。但是,如果您有商业理由这样做,那么您正在寻找的是 GitLab CI 标签(不是 git 标签)。
注册 Runner 时,您可以为特定的 运行ner 指定标签。如果管道作业具有相同的标签,则该作业只能 运行 在具有该标签的 运行 人上。例如,如果只有某个 运行 人安装了工作需要的某些特定软件,或者如果 运行 人可以访问外部资源而其他人没有,等等,这将很有用。
这是来自 the docs 的示例:
windows job:
stage:
- build
tags:
- windows
script:
- echo Hello, %USERNAME%!
osx job:
stage:
- build
tags:
- osx
script:
- echo "Hello, $USER!"
在此示例中,windows job
具有标签 windows
。据推测,带有 windows
标签的 运行ner 在 Windows 框上,而 osx job
运行s 在 Mac 上。