Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • GitCode
  • 帮助文档
  • Wiki
    • Docs
    • Ci
  • runners

帮
帮助文档
  • 项目概览

GitCode / 帮助文档

通知 1627
Star 125
Fork 140
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 166
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 23
  • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • Wiki 89
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
帮
帮助文档
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 166
    • Issue 166
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 23
    • 合并请求 23
  • Pages
  • DevOps
    • DevOps
    • 流水线
    • 流水线任务
    • 计划
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 89
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 流水线任务
  • 提交
  • Issue看板

runners · 变更

页面历史
update file 编写于 6月 08, 2021 作者: BaiXuePrincess's avatar BaiXuePrincess
隐藏空白更改
内联 并排
Showing with 77 addition and 85 deletion
+77 -85
  • docs/ci/runners.md docs/ci/runners.md +77 -85
  • 未找到文件。
docs/ci/runners.md
View page @ 7a903a40
# 配置 Runners[](#configuring-gitlab-runners "Permalink") # 配置 Runners[](#configuring-CODECHINA-runners "Permalink")
在 CODECHINA CI/CD 中,runners 运行[`.codechina-ci.yml`](/docs/ci/yaml.md)定义的代码。Runner 是一种轻量级,高度可扩展的代理,它通过 CI/CD 的协调器 API 提取 CI 流水线任务,运行该流水线任务,并将结果发送回 CODECHINA 实例。 在 CODECHINA CI/CD 中,runners 运行[`.codechina-ci.yml`](/docs/ci/yaml.md)定义的代码。Runner 是一种轻量级,高度可扩展的代理,它通过 CI/CD 的协调器 API 提取 CI 流水线任务,运行该流水线任务,并将结果发送回 CODECHINA 实例。
Runners 由管理员创建,并在 GitLab UI 中可见。 Runners 由管理员创建,并在 CODECHINA UI 中可见。
Runners 可以特定于某些项目,也可以适用于所有项目。 Runners 可以特定于某些项目,也可以适用于所有项目。
...@@ -18,23 +18,23 @@ Runners 共有三种类型: ...@@ -18,23 +18,23 @@ Runners 共有三种类型:
CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
当您有多个要求相似的流水线任务时,请使用共享 Runners。 您可以让几个 Runner 处理多个项目,而不是在许多项目中有多个 Runner 空闲。 当你有多个要求相似的流水线任务时,请使用共享 Runners。 你可以让几个 Runner 处理多个项目,而不是在许多项目中有多个 Runner 空闲。
如果您使用的是 GitLab 的自我管理实例: 如果你使用的是 CODECHINA 的自我管理实例:
* 您的管理员可以通过查看[此处](https://docs.gitlab.com/runner/install/index.html)的说明来安装和注册共享运行程序。 * 你的管理员可以通过查看[此处](https://docs.CODECHINA.com/runner/install/index.html)的说明来安装和注册共享 runner。
* 管理员还可以为每个组配置最大的共享 Runner [流水线分钟数](../../user/admin_area/settings/continuous_integration.html#shared-runners-pipeline-minutes-quota-starter-only) 。 * 管理员还可以为每个组配置最大的共享 Runner 流水线分钟数。
如果您使用的是 GitLab.com: 如果你使用的是 CODECHINA:
* 您可以从GitLab 维护的[共享 runners](../../user/gitlab_com/index.html#shared-runners)列表中进行选择。 * 你可以从 CODECHINA 维护的共享 runners 列表中进行选择。
* 共享 runners 消耗您帐户中包含的[流水线分钟数](../../subscriptions/index.html#ci-pipeline-minutes) 。 * 共享 runners 消耗你帐户中包含的流水线分钟数 。
#### 共享 Runners 如何选择流水线任务[](#how-shared-runners-pick-jobs "Permalink") #### 共享 Runners 如何选择流水线任务[](#how-shared-runners-pick-jobs "Permalink")
共享 runners 通过使用合理使用队列来处理流水线任务。 此队列可防止项目创建数百个流水线任务并使用所有可用的共享 Runners 资源。 共享 runners 通过使用合理使用队列来处理流水线任务。 此队列可防止项目创建数百个流水线任务并使用所有可用的共享 Runners 资源。
合理使用队列算法根据已在共享 Runners 上运行的流水线任务数量最少的项目分配作业。 合理使用队列算法根据已在共享 Runners 上运行的流水线任务数量最少的项目分配流水线任务。
**示例 1** **示例 1**
...@@ -49,15 +49,13 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -49,15 +49,13 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
合理使用算法按以下顺序分配流水线任务: 合理使用算法按以下顺序分配流水线任务:
1. 首先选择作业 1,因为它在没有正在运行的作业的项目(即所有项目)中具有最低的作业编号。 1. 首先选择流水线任务 1,因为它在没有正在运行的流水线任务的项目(即所有项目)中具有最低的流水线任务编号。
2. 接下来是作业 4,因为现在 4 是来自没有正在运行的作业的项目中最低的作业编号(项目 1 有正在运行的作业)。 2. 接下来是流水线任务 4,因为现在 4 是来自没有正在运行的流水线任务的项目中最低的流水线任务编号(项目 1 有正在运行的流水线任务)。
3. 接下来是作业 6,因为 6 现在是没有正在运行的作业的项目中最低的作业编号(项目 1 和 2 有正在运行的作业)。 3. 接下来是流水线任务 6,因为 6 现在是没有正在运行的流水线任务的项目中最低的流水线任务编号(项目 1 和 2 有正在运行的流水线任务)。
4. 接下来是作业 2,因为在运行的作业数量最少的项目(每个都有 1)中,它是最低的作业数量。 4. 接下来是流水线任务 2,因为在运行的流水线任务数量最少的项目(每个都有 1)中,它是最低的流水线任务数量。
5. 接下来是作业 5,因为项目 1 现在有 2 个正在运行的作业,而作业 5 是项目 2 和项目 3 之间剩余的最低编号。 5. 接下来是流水线任务 5,因为项目 1 现在有 2 个正在运行的流水线任务,而流水线任务 5 是项目 2 和项目 3 之间剩余的最低编号。
6. 最后是工作 3…,因为这是剩下的唯一工作。 6. 最后是工作 3…,因为这是剩下的唯一工作。
* * *
**示例 2** **示例 2**
如果这些流水线任务在队列中: 如果这些流水线任务在队列中:
...@@ -69,24 +67,22 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -69,24 +67,22 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
* 项目 2 的工作 5 * 项目 2 的工作 5
* 项目 3 的工作 6 * 项目 3 的工作 6
合理使用算法按以下顺序分配作业: 合理使用算法按以下顺序分配流水线任务:
1. 首先选择作业 1,因为它在没有正在运行的作业的项目(即所有项目)中具有最低的作业编号。 1. 首先选择流水线任务 1,因为它在没有正在运行的流水线任务的项目(即所有项目)中具有最低的流水线任务编号。
2. 我们完成工作 1。 2. 我们完成工作 1。
3. 接下来是作业 2,因为完成作业 1 后,所有项目都再次运行 0 个作业,而 2 是最低的可用作业号。 3. 接下来是流水线任务 2,因为完成流水线任务 1 后,所有项目都再次运行 0 个流水线任务,而 2 是最低的可用流水线任务号。
4. 接下来是作业 4,因为在项目 1 运行作业的情况下,项目 4 在没有运行作业的项目(项目 2 和 3)中是最低的。 4. 接下来是流水线任务 4,因为在项目 1 运行流水线任务的情况下,项目 4 在没有运行流水线任务的项目(项目 2 和 3)中是最低的。
5. 我们完成工作 4。 5. 我们完成工作 4。
6. 接下来是作业 5,因为完成了作业 4,所以项目 2 没有再次运行的作业。 6. 接下来是流水线任务 5,因为完成了流水线任务 4,所以项目 2 没有再次运行的流水线任务。
7. 接下来是作业 6,因为项目 3 是唯一没有运行作业的项目。 7. 接下来是流水线任务 6,因为项目 3 是唯一没有运行流水线任务的项目。
8. 最后,我们选择作业 3…,因为它再次是唯一剩下的作业。 8. 最后,我们选择流水线任务 3…,因为它再次是唯一剩下的流水线任务。
#### 启用共享 Runners[](#enable-shared-runners "Permalink") #### 启用共享 Runners[](#enable-shared-runners "Permalink")
在 CODECHINA 上,默认情况下在所有项目中启用[共享 runners](#shared-runners) 。 在 CODECHINA 上,默认情况下在所有项目中启用[共享 runners](#shared-runners) 。
在CODECHINA 自我管理实例上,管理员必须 [安装和注册](https://docs.gitlab.com/runner/register/index.html) 它们。 你还可以为单个项目启用共享 runners。
您还可以为单个项目启用共享 runners。
要启用共享 runners: 要启用共享 runners:
...@@ -95,7 +91,7 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -95,7 +91,7 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
#### 禁用共享 Runners[](#disable-shared-runners "Permalink") #### 禁用共享 Runners[](#disable-shared-runners "Permalink")
您可以为单个项目禁用共享 runners。 您必须具有项目或组织的所有者权限。 你可以为单个项目禁用共享 runners。 你必须具有项目或组织的所有者权限。
要为项目禁用共享 runners: 要为项目禁用共享 runners:
...@@ -104,25 +100,25 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -104,25 +100,25 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
### 组织 Runners[](#group-runners "Permalink") ### 组织 Runners[](#group-runners "Permalink")
当您希望组中的所有项目都可以访问一组 runners 时,请使用" *组 runners"* 。 当你希望组中的所有项目都可以访问一组 runners 时,请使用" *组 runners"* 。
组 runners 使用先进先出 ([FIFO](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics))) 队列处理流水线任务。 组 runners 使用先进先出 ([FIFO](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics))) 队列处理流水线任务。
#### 创建组 Runner[](#create-a-group-runner "Permalink") #### 创建组 Runner[](#create-a-group-runner "Permalink")
您可以为自己管理的 GitLab 实例或 GitLab.com 创建一个组 Runner。 您必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。 你可以为自己管理的 CODECHINA 实例或 CODECHINA.com 创建一个组 Runner。 你必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。
创建组 runner: 创建组 runner:
1. [安装 Runner](https://docs.gitlab.com/runner/install/)。 1. 安装 Runner。
2. 转到您要使 Runner 运行的组。 2. 转到你要使 Runner 运行的组。
3. 去 **设置> CI/CD**,然后展开 **Runners**部分。 3. 去 **设置> CI/CD**,然后展开 **Runners**部分。
4. 记下 URL 和令牌。 4. 记下 URL 和令牌。
5. [注册 Runner](https://docs.gitlab.com/runner/register/)。 5. 注册 Runner。
#### 查看和管理组 Runners[](#view-and-manage-group-runners "Permalink") #### 查看和管理组 Runners[](#view-and-manage-group-runners "Permalink")
您可以查看和管理组,其子组和项目的所有 runners。 您可以为自己管理的 GitLab 实例或 GitLab.com 执行此操作。 您必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。 你可以查看和管理组,其子组和项目的所有 runners。 你可以为自己管理的 CODECHINA 实例或 codechina.csdn.net 执行此操作。 你必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。
1. 转到要查看 runners 的组。 1. 转到要查看 runners 的组。
2. 去 **设置> CI/CD**,然后展开"**Runners**部分。 2. 去 **设置> CI/CD**,然后展开"**Runners**部分。
...@@ -131,36 +127,36 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -131,36 +127,36 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
| Attribute | Description | | Attribute | Description |
| --- | --- | | --- | --- |
| 类型 | 以下一种或多种状态:共享,组,特定,锁定或暂停 | | 类型 | 以下一种或多种状态:共享,组,特定,锁定或暂停 |
| Runner 令牌 | 令牌用于标识 Runner,并且 Runner 用于与 GitLab 实例进行通信 | | Runner 令牌 | 令牌用于标识 Runner,并且 Runner 用于与 CODECHINA 实例进行通信 |
| 描述 | 创建 runner 时的描述 | | 描述 | 创建 runner 时的描述 |
| 版本 | Runner 版本 | | 版本 | Runner 版本 |
| IP 地址 | 注册了运行程序的主机的 IP 地址 | | IP 地址 | 注册了运行程序的主机的 IP 地址 |
| 项目 | Runner 分配到的项目数 | | 项目 | Runner 分配到的项目数 |
| 流水线任务 | Runner所从事的流水线任务总数 | | 流水线任务 | Runner所从事的流水线任务总数 |
| Tags | 与 Runner 相关的标签 | | 标签 | 与 Runner 相关的标签 |
| 最后联络人 | 指示 GitLab 实例最后一次与 Runner 联系的时间戳 | | 最后联络人 | 指示 CODECHINA 实例最后一次与 Runner 联系的时间戳 |
在此页面上,您可以从组、其子组和项目中编辑、暂停和删除 runners。 在此页面上,你可以从组、其子组和项目中编辑、暂停和删除 runners。
#### 暂停或移除组 runner[](#pause-or-remove-a-group-runner "Permalink") #### 暂停或移除组 runner[](#pause-or-remove-a-group-runner "Permalink")
您可以为自己管理的 GitLab 实例或 GitLab.com 暂停或删除组 runner。 您必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。 你可以为自己管理的 CODECHINA 实例或 codechina.csdn.net 暂停或删除组 runner。 你必须具有该组的[所有者权限](/docs/user/permissions.md#group-members-permissions) 。
1. 转到您要删除或暂停 Runner 的组。 1. 转到你要删除或暂停 Runner 的组。
2. 去 **设置> CI/ CD**,然后展开 **Runners**部分。 2. 去 **设置> CI/ CD**,然后展开 **Runners**部分。
3. 点击 **暂停** 或 **移除 runner**。 3. 点击 **暂停** 或 **移除 runner**。
* 如果您暂停由多个项目使用的组 Runner,则 Runner 会暂停所有项目。 * 如果你暂停由多个项目使用的组 Runner,则 Runner 会暂停所有项目。
* 从组视图中,您无法删除分配给多个项目的 runner。 您必须先从每个项目中将其删除。 * 从组视图中,你无法删除分配给多个项目的 runner。 你必须先从每个项目中将其删除。
4. 在确认对话框中,单击**确定** 。 4. 在确认对话框中,单击**确定** 。
### 特定 Runners[](#specific-runners "Permalink") ### 特定 Runners[](#specific-runners "Permalink")
当你想为特定项目使用 runners 时,可使用*特定 runners* 。 例如,当您拥有: 当你想为特定项目使用 runners 时,可使用*特定 runners* 。 例如,当你拥有:
* 有特定要求的流水线任务,例如需要凭据的部署流水线任务。 * 有特定要求的流水线任务,例如需要凭据的部署流水线任务。
* 具有大量CI 活动的项目可以从与其他 runners 分离中受益。 * 具有大量CI 活动的项目可以从与其他 runners 分离中受益。
您可以设置一个特定的 Runner,以供多个项目使用。 必须为每个项目明确启用特定的 runner。 你可以设置一个特定的 Runner,以供多个项目使用。 必须为每个项目明确启用特定的 runner。
特定 runner 通过使用先进先出( [FIFO](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)) )队列来处理流水线任务。 特定 runner 通过使用先进先出( [FIFO](https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)) )队列来处理流水线任务。
...@@ -168,20 +164,20 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -168,20 +164,20 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
#### 创建一个特定的 Runner[](#create-a-specific-runner "Permalink") #### 创建一个特定的 Runner[](#create-a-specific-runner "Permalink")
您可以为自己管理的 GitLab 实例或 GitLab.com 创建特定的 Runner。 您必须具有项目的[所有者权限](/docs/user/permissions.md#project-members-permissions) 。 你可以为自己管理的 CODECHINA 实例或 codechina.csdn.net 创建特定的 Runner。 你必须具有项目的[所有者权限](/docs/user/permissions.md#project-members-permissions) 。
要创建特定的 runner: 要创建特定的 runner:
1. [安装 Runner](https://docs.gitlab.com/runner/install/)。 1. 安装 Runner。
2. 转到项目的 **设置> CI/CD**,然后展开**Runners**部分。 2. 转到项目的 **设置> CI/CD**,然后展开**Runners**部分。
3. 记下 URL 和令牌。 3. 记下 URL 和令牌。
4. [注册 Runner](https://docs.gitlab.com/runner/register/)。 4. 注册 Runner。
#### 为特定项目启用特定 Runner [](#enable-a-specific-runner-for-a-specific-project "Permalink") #### 为特定项目启用特定 Runner [](#enable-a-specific-runner-for-a-specific-project "Permalink")
在为其创建的项目中提供了特定的 Runner。 管理员可以使特定的 Runner 应用于其他项目。 在为其创建的项目中提供了特定的 Runner。 管理员可以使特定的 Runner 应用于其他项目。
* 您必须具有项目的所有者权限。 * 你必须具有项目的所有者权限。
* 特定的跑步者一定不能被[锁定](#prevent-a-specific-runner-from-being-enabled-for-other-projects) 。 * 特定的跑步者一定不能被[锁定](#prevent-a-specific-runner-from-being-enabled-for-other-projects) 。
要为项目启用或禁用特定的 runners: 要为项目启用或禁用特定的 runners:
...@@ -191,23 +187,19 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -191,23 +187,19 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
#### 防止为其他项目启用特定 Runner [](#prevent-a-specific-runner-from-being-enabled-for-other-projects "Permalink") #### 防止为其他项目启用特定 Runner [](#prevent-a-specific-runner-from-being-enabled-for-other-projects "Permalink")
您可以配置一个特定的 runner,使其"锁定"并且不能为其他项目启用。 首次[注册 Runner](https://docs.gitlab.com/runner/register/)时可以启用此设置,但以后也可以更改。 你可以配置一个特定的 runner,使其"锁定"并且不能为其他项目启用。 首次[注册 Runner](https://docs.CODECHINA.com/runner/register/)时可以启用此设置,但以后也可以更改。
锁定或解锁 runner: 锁定或解锁 runner:
1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。 1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。
2. 找到您想要锁定或解锁的 runner。 确保已启用。 2. 找到你想要锁定或解锁的 runner。 确保已启用。
3. 单击铅笔按钮。 3. 单击铅笔按钮。
4. 选中" **锁定到当前项目"**选项。 4. 选中 **锁定到当前项目**选项。
5. 点击 **保存更改**。 5. 点击 **保存更改**。
## 手动清除 Runner 缓存[](#manually-clear-the-runner-cache "Permalink") ## 为 Runner 设置最大流水线任务超时[](#set-maximum-job-timeout-for-a-runner "Permalink")
读取 [清除缓存](../caching/index.html#clearing-the-cache)。
## 为 Runner 设置最大[](#set-maximum-job-timeout-for-a-runner "Permalink")
对于每个 runner,您可以指定*最大作业超时时间* 。 如果此超时时间小于[项目定义的超时时间](/docs/ci/pipelines/settings.md#timeout) ,则优先。 对于每个 runner,你可以指定*最大流水线任务超时时间* 。 如果此超时时间小于[项目定义的超时时间](/docs/ci/pipelines/settings.md#timeout) ,则优先。
此功能可用于防止共享的 Runner 被具有较长超时(例如,一个星期)的工作的项目淹没。 此功能可用于防止共享的 Runner 被具有较长超时(例如,一个星期)的工作的项目淹没。
...@@ -217,58 +209,58 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -217,58 +209,58 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
**示例 1- Runner 超时大于项目超时** **示例 1- Runner 超时大于项目超时**
1. 您将 runner 的*最大作业超时*设置为 24 小时 1. 你将 runner 的*最大流水线任务超时*设置为 24 小时
2. 您将项目的*CI/CD 超时*设置为**2 小时** 2. 你将项目的*CI/CD 超时*设置为**2 小时**
3. 你开始一个流水线任务 3. 你开始一个流水线任务
4. 如果流水线任务时间更长,则**2 小时**后将超时 4. 如果流水线任务时间更长,则**2 小时**后将超时
**示例 2-未配置 Runner 超时** **示例 2-未配置 Runner 超时**
1. 您从 runner 中删除*最大作业超时*配置 1. 你从 runner 中删除*最大流水线任务超时*配置
2. 您将项目的*CI/CD 超时*设置为**2 小时** 2. 你将项目的*CI/CD 超时*设置为**2 小时**
3. 你开始一个流水线任务 3. 你开始一个流水线任务
4. 如果流水线任务时间更长,则**2 小时**后将超时 4. 如果流水线任务时间更长,则**2 小时**后将超时
**示例 3- Runner 超时小于项目超时** **示例 3- Runner 超时小于项目超时**
1. 您将 runner 的*最大作业超时*设置为**30 分钟** 1. 你将 runner 的*最大流水线任务超时*设置为**30 分钟**
2. 您将项目的*CI/CD 超时*设置为 2 小时 2. 你将项目的*CI/CD 超时*设置为 2 小时
3. 你开始一个流水线任务 3. 你开始一个流水线任务
4. 如果流水线任务时间更长,则**30 分钟**后将超时 4. 如果流水线任务时间更长,则**30 分钟**后将超时
## 小心敏感信息[](#be-careful-with-sensitive-information "Permalink") ## 小心敏感信息[](#be-careful-with-sensitive-information "Permalink")
使用某些[Runner Executors](https://docs.gitlab.com/runner/executors/README.html) ,如果可以在 Runner 上运行流水线任务,则可以完全访问文件系统,从而可以运行该文件的任何代码以及 Runner 的令牌。 使用共享的 runner ,这意味着在 runner 上运行流水线任务的任何人都可以访问在 runner 上运行的任何其他人的代码。 使用某些Runner Executors ,如果可以在 Runner 上运行流水线任务,则可以完全访问文件系统,从而可以运行该文件的任何代码以及 Runner 的令牌。 使用共享的 runner ,这意味着在 runner 上运行流水线任务的任何人都可以访问在 runner 上运行的任何其他人的代码。
另外,由于您可以访问 Runner 令牌,因此可以创建 Runner 的克隆并提交错误的流水线任务。 另外,由于你可以访问 Runner 令牌,因此可以创建 Runner 的克隆并提交错误的流水线任务。
通过限制在大型公共 GitLab 实例上共享Runner 的使用、控制对 GitLab 实例的访问以及使用更安全的[Runner Executor](https://docs.gitlab.com/runner/executors/README.html) ,可以轻松避免上述情况。 通过限制在大型公共 CODECHINA 实例上共享Runner 的使用、控制对 CODECHINA 实例的访问以及使用更安全的 Runner Executor ,可以轻松避免上述情况。
### 防止 Runners 泄露敏感信息[](#prevent-runners-from-revealing-sensitive-information "Permalink") ### 防止 Runners 泄露敏感信息[](#prevent-runners-from-revealing-sensitive-information "Permalink")
您可以保护 runners ,使他们不会泄露敏感信息。 当 runner 受到保护时,runner 仅选择在[受保护分支](/docs/user/project/protected_branches.md)或[受保护标签](/docs/user/project/protected_tags.md)上创建的流水线任务,而忽略其他流水线任务。 你可以保护 runners ,使他们不会泄露敏感信息。 当 runner 受到保护时,runner 仅选择在[受保护分支](/docs/user/project/protected_branches.md)或[受保护标签](/docs/user/project/protected_tags.md)上创建的流水线任务,而忽略其他流水线任务。
保护或取消保护跑步者: 保护或取消保护跑步者:
1. 转到项目的 **设置> CI / CD**,然后展开 **跑步者**部分。 1. 转到项目的 **设置> CI / CD**,然后展开 **跑步者**部分。
2. 找到您要保护或取消保护的 runner。 确保已启用。 2. 找到你要保护或取消保护的 runner。 确保已启用。
3. 单击铅笔按钮。 3. 单击铅笔按钮。
4. 检查**受保护的**选项。 4. 检查**受保护的**选项。
5. 点击 **保存更改**。 5. 点击 **保存更改**。
[![specific Runners edit icon](img/91abd5be225ec3a5c131075cce857fb8。png)](img/protected_runners_check_box.png) [![specific Runners edit icon](img/91abd5be225ec3a5c131075cce857fb8.png)](img/protected_runners_check_box.png)
### Forks[](#forks "Permalink") ### Forks[](#forks "Permalink")
每当 fork 一个项目时,它都会复制与其相关的作业的设置。 这意味着,如果您已经为项目设置了共享的 Runners,并且有人 fork 了该项目,则共享的 Runners 也将为该项目的工作提供服务。 每当 fork 一个项目时,它都会复制与其相关的流水线任务的设置。 这意味着,如果你已经为项目设置了共享的 Runners,并且有人 fork 了该项目,则共享的 Runners 也将为该项目的工作提供服务。
### Runners 中的攻击向量[](#attack-vectors-in-runners "Permalink") ### Runners 中的攻击向量[](#attack-vectors-in-runners "Permalink")
前面已经简要提到过,但是可以利用 Runners 的以下功能。 我们一直在寻找可以减轻这些[安全注意事项的因素](https://docs.gitlab.com/runner/security/) 。 前面已经简要提到过,但是可以利用 Runners 的以下功能。 我们一直在寻找可以减轻这些[安全注意事项的因素](https://docs.CODECHINA.com/runner/security/) 。
### 重置项目的 Runner 注册令牌[](#reset-the-runner-registration-token-for-a-project "Permalink") ### 重置项目的 Runner 注册令牌[](#reset-the-runner-registration-token-for-a-project "Permalink")
如果您认为某个项目的注册令牌已公开,则应将其重置。 令牌可用于为该项目注册另一个 Runner。 然后可以使用该新 Runner 来获取秘密变量的值或克隆项目代码。 如果你认为某个项目的注册令牌已公开,则应将其重置。 令牌可用于为该项目注册另一个 Runner。 然后可以使用该新 Runner 来获取秘密变量的值或克隆项目代码。
重置令牌: 重置令牌:
...@@ -278,51 +270,51 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。 ...@@ -278,51 +270,51 @@ CODECHINA 实例中的每个项目都可以使用*共享 Runners* 。
4. 删除值并保存表单。 4. 删除值并保存表单。
5. 刷新页面后,展开 **Runners 设置**部分并检查注册令牌-应该更改它。 5. 刷新页面后,展开 **Runners 设置**部分并检查注册令牌-应该更改它。
从现在开始,旧令牌将不再有效,并且不会在项目中注册任何新的 runner。 如果您使用任何工具来供应和注册新的 runner,则应更新这些工具中使用的令牌以反映新令牌的价值。 从现在开始,旧令牌将不再有效,并且不会在项目中注册任何新的 runner。 如果你使用任何工具来供应和注册新的 runner,则应更新这些工具中使用的令牌以反映新令牌的价值。
## 确定 Runner 的 IP 地址[](#determine-the-ip-address-of-a-runner "Permalink") ## 确定 Runner 的 IP 地址[](#determine-the-ip-address-of-a-runner "Permalink")
知道 Runner 的 IP 地址可能很有用,以便您可以解决该 Runner 的问题。 CODECHINA 通过在轮询作业时查看向 CODECHINA 发出的 HTTP 请求的源来存储和显示 IP 地址。 IP 地址始终保持最新,因此,如果 Runner IP 更改,它将在 CODECHINA 中自动更新。 知道 Runner 的 IP 地址可能很有用,以便你可以解决该 Runner 的问题。 CODECHINA 通过在轮询流水线任务时查看向 CODECHINA 发出的 HTTP 请求的源来存储和显示 IP 地址。 IP 地址始终保持最新,因此,如果 Runner IP 更改,它将在 CODECHINA 中自动更新。
共享 runners 和特定 runners 的 IP 地址可以在不同位置找到。 共享 runners 和特定 runners 的 IP 地址可以在不同位置找到。
### 确定共享 Runner 的 IP 地址[](#determine-the-ip-address-of-a-shared-runner "Permalink") ### 确定共享 Runner 的 IP 地址[](#determine-the-ip-address-of-a-shared-runner "Permalink")
要查看共享运 runner 的 IP 地址,您必须具有对 CODECHINA 实例的管理员访问权限。 要确定这一点: 要查看共享运 runner 的 IP 地址,你必须具有对 CODECHINA 实例的管理员访问权限。 要确定这一点:
1. 访问 **管理区域>概述> Runner**。 1. 访问 **管理区域>概述> Runner**。
2. 在表中查找 Runner,您应该会看到**IP Address**列。 2. 在表中查找 Runner,你应该会看到**IP Address**列。
[![shared Runner IP address](/docs/img/shared_runner_ip_address.png)](/docs/img/shared_runner_ip_address.png) [![shared Runner IP address](/docs/img/shared_runner_ip_address.png)](/docs/img/shared_runner_ip_address.png)
### 确定特定 Runner 的 IP 地址[](#determine-the-ip-address-of-a-specific-runner "Permalink") ### 确定特定 Runner 的 IP 地址[](#determine-the-ip-address-of-a-specific-runner "Permalink")
若要查找特定项目的 runner 的 IP 地址,您必须具有该项目的所有者[权限](/docs/user/permissions.md#project-members-permissions) 。 若要查找特定项目的 runner 的 IP 地址,你必须具有该项目的所有者[权限](/docs/user/permissions.md#project-members-permissions) 。
1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。 1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。
2. 在详细信息页面上,您应该看到**IP 地址**行。 2. 在详细信息页面上,你应该看到**IP 地址**行。
[![specific Runner IP address](img/b6c59d6785a7941658315a7e8e148751.png)](img/specific_runner_ip_address.png) [![specific Runner IP address](img/b6c59d6785a7941658315a7e8e148751.png)](img/specific_runner_ip_address.png)
## 使用标签来限制使用 Runner 的作业数量[](#use-tags-to-limit-the-number-of-jobs-using-the-runner "Permalink") ## 使用标签来限制使用 Runner 的流水线任务数量[](#use-tags-to-limit-the-number-of-jobs-using-the-runner "Permalink")
您必须设置一个 Runner 才能运行它在共享项目上可能遇到的所有不同类型的作业。 如果不是标签,这对于大量项目将是有问题的。 你必须设置一个 Runner 才能运行它在共享项目上可能遇到的所有不同类型的流水线任务。 如果不是标签,这对于大量项目将是有问题的。
通过将 Runner 标记为它可以处理的作业类型,可以确保共享的 Runners [仅运行其能够运行的作业](../yaml/README.html#tags) 。 通过将 Runner 标记为它可以处理的流水线任务类型,可以确保共享的 Runners [仅运行其能够运行的流水线任务](/docs/ci/yaml.md#tags) 。
例如,在 CODECHINA 上,如果 Runners 包含运行 Rails 测试套件的适当依赖项,我们会将它们标记为`rails` 。 例如,在 CODECHINA 上,如果 Runners 包含运行 Rails 测试套件的适当依赖项,我们会将它们标记为`rails` 。
[注册 Runner 时](https://docs.gitlab.com/runner/register/) ,其默认行为是**仅选择带** [标签的作业](../yaml/README.html#tags) 。 要更改此设置,您必须具有项目的所有者[权限](/docs/user/permissions.md#project-members-permissions) 。 注册 Runner 时 ,其默认行为是**仅选择带** [标签的流水线任务](/docs/ci/yaml.md#tags) 。 要更改此设置,你必须具有项目的所有者[权限](/docs/user/permissions.md#project-members-permissions) 。
要使 runner 选择无标签的工作,请执行以下操作: 要使 runner 选择无标签的工作,请执行以下操作:
1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。 1. 转到项目的 **设置> CI/CD**,然后展开 **Runners**部分。
2. 找到您要选择未加标签的作业的 Runner,并确保已启用它。 2. 找到你要选择未加标签的流水线任务的 Runner,并确保已启用它。
3. 单击铅笔按钮。 3. 单击铅笔按钮。
4. 选中**运行未加标签的作业**选项。 4. 选中**运行未加标签的流水线任务**选项。
5. 单击**保存更改**按钮以使更改生效。 5. 单击**保存更改**按钮以使更改生效。
**注意:**不允许选择未标记的作业时," runner 标签"列表不能为空。 **注意**:不允许选择未标记的流水线任务时," runner 标签"列表不能为空。
以下是一些不同变化的示例场景。 以下是一些不同变化的示例场景。
......
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7