关于 GitHub Actions 的自托管运行器
GitHub Actions 使企业中的用户可以通过自动化软件开发工作流的每个阶段来提高工作效率。 有关详细信息,请参阅“企业版GitHub Actions 之介绍”。
借助 GitHub Actions,开发人员可以编写和合并称为操作的单个任务,以创建自定义工作流。 可以托管自己的运行器计算机来执行作业,该计算机称为自托管运行器。 运行器机器使用 GitHub Actions 自托管运行器应用程序连接到 GitHub。 所有运行器可以运行 Linux、Windows 或 macOS。 有关详细信息,请参阅“自托管运行程序”。
或者,您可以使用由 GitHub 托管的运行器机器。 GitHub 托管的运行器不在本指南的范围内。 有关详细信息,请参阅“GitHub 托管的运行程序”。
本指南介绍如何在企业中对 GitHub Actions 的自托管的运行器应用集中式管理方法。 在本指南中,你将完成以下任务。
- 配置有限策略以限制可在企业内运行的操作和可重用工作流
- 为企业部署自托管运行器
- 创建一个组,用于管理对企业可用的运行器的访问
- (可选)进一步限制能够使用该运行器的存储库
- 或者,若要自动化地构建和扩展自托管的运行器,请使用 Actions Runner Controller (ARC)。 有关详细信息,请参阅“Actions Runner Controller”。
你还将找到有关如何监控和保护自托管运行器的更多信息,以及如何自定义运行器计算机上的软件。
完成指南后,你的企业成员 将能够在自托管运行器计算机上运行来自 GitHub Actions 的工作流作业。
先决条件
1. 为 GitHub Actions 配置策略
首先,为所有组织启用 GitHub Actions,并配置策略以限制可在你的企业内 运行的操作 和可重用工作流。 (可选)组织所有者可以进一步为每个组织限制这些策略。
- 导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。
- 在页面顶部,单击“ Policies”。
- 在“ Policies”下,单击“Actions”****。
- 在“策略”下,选择“为所有组织启用”。
- 要启用本地操作 和可重用工作流, 以及 GitHub 创建的操作,请选择 允许企业,并允许选择非企业、操作和可重用工作流____,然后选择“允许 GitHub 创建的操作”。****
- 单击“ 保存”。
可以配置其他策略来限制 企业成员能够执行的操作。 有关详细信息,请参阅“在企业中强制实施GitHub Actions策略”。
2. 为企业部署自托管运行器
接下来,向企业添加自托管运行器。 GitHub 将指导你在运行器计算机上安装必要的软件。 部署运行器后,你可以验证运行器计算机与你的企业 之间的连接。
添加自托管运行器
-
导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。
-
在页面顶部,单击“ Policies”。
-
在“ Policies”下,单击“Actions”****。
-
单击“运行器”选项卡。
-
单击“新建运行器”,然后单击“新自托管运行器” 。 1. 选择自托管运行器计算机的操作系统映像和体系结构。

-
您将看到指示您如何下载运行器应用程序并安装到自托管运行器机器上的说明。
在自托管运行器机器上打开 shell,并按显示的顺序运行每个 shell 命令。
注意
在 Windows 上,如果要将自托管运行器应用程序安装为服务,必须打开具有管理员权限的 shell。 我们还建议你使用
C:\actions-runner作为自托管运行器应用程序的目录,以便 Windows 系统帐户可以访问运行器目录。这些说明将指导您完成以下任务:
- 下载并提取自托管运行器应用程序。
- 运行
config脚本配置自托管运行器应用程序,并将其注册到 GitHub Actions。config脚本需要目标 URL 和自动生成的时间限制令牌对请求进行身份验证。 令牌将在一小时后过期。- 在 Windows 上,
config脚本还会询问你是否想将自托管运行器应用程序安装为服务。 对于 Linux 和 macOS,您可以在完成添加运行器后安装服务。 有关详细信息,请参阅“将自托管的运行应用程序配置为服务”。
- 在 Windows 上,
- 运行自托管运行器应用程序以将机器连接到 GitHub Actions。
检查您的自托管运行器是否已成功添加
在完成添加自托管运行器的步骤后,运行器及其状态列在“运行器”下。
必须激活自托管运行器应用程序,运行器才能接受作业。 当运行器应用程序连接到 GitHub 并准备接收作业时,你将在机器的终端上看到以下消息。
√ Connected to GitHub
2019-10-24 05:45:56Z: Listening for Jobs
3. 使用用户组管理对自托管 runner 的访问权限
可以创建运行器组来管理对添加到企业的运行器的访问。 你将使用该组选择哪些组织可以在运行器上通过 GitHub Actions 执行作业。
GitHub 会将所有新的运行器添加到组中。 运行器一次可以位于一个组中。 默认情况下,GitHub 将新运行器添加到“默认”组。
-
导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。
-
在页面顶部,单击“ Policies”。
-
在“ Policies”下,单击“Actions”****。
-
单击“运行器组”选项卡。
-
单击“新建运行器组”。
-
在“组名称”下,键入运行器组的名称。
-
要选择组织访问策略,请在“组织访问权限”下选择“组织访问”下拉列表,然后单击“选定的组织” 。
-
在具有组织访问策略的下拉列表右侧,单击“”。
-
选择要授予运行器组访问权限的组织。
-
(可选)要允许所选组织中的公共存储库使用组中的运行器,请选择“允许公共存储库”。
-
单击“创建组”以创建组并应用策略。
-
单击“Runners”选项卡。
-
在运行器列表中,单击在上一部分中部署的运行器。
-
单击 “编辑” 。
-
单击“Runner groups ”****
-
在运行器组列表中,单击之前创建的组的名称。
-
单击“保存”,以将运行器移动到该组。
现在,你已部署了一个可在指定的组织内通过 GitHub Actions 运行作业的自托管运行器。
4. 进一步限制对自托管运行器的访问
(可选)组织所有者和具有“管理组织运行器和运行器组”权限的用户可以进一步限制所创建运行器组的访问策略。 例如,组织所有者只能允许组织中的某些存储库使用运行器组。
有关详细信息,请参阅“使用组管理对自托管运行程序的访问”。
有关自定义组织角色的详细信息,请参阅“自定义组织角色的权限”。
5. 自动缩放自托管运行器
或者,可以使用 Actions Runner Controller (ARC) 自动缩放自托管运行器。 Actions Runner Controller (ARC) 是 Kubernetes 运算符,用于协调和缩放 GitHub Actions 的自托管运行器。 有关详细信息,请参阅 Kubernetes 文档中的运算符模式。
使用 ARC,可以创建运行器规模集,以便根据存储库、组织或企业中运行的工作流数量自动缩放。 受控的运行器可以是临时且基于容器的运行器,因此新的运行器实例可以快速顺利地纵向扩展或缩减。 有关自动缩放的详细信息,请参阅“自托管运行程序参考”。
后续步骤
-
可以监视自托管运行器并排查常见问题。 有关详细信息,请参阅“对自托管运行程序进行监视和故障排除”。
-
GitHub 建议查看有关自托管运行器计算机的安全注意事项。 有关详细信息,请参阅“安全使用指南”。
-
如果你使用 GitHub Enterprise Server,你 可以手动将 GitHub.com 上包含操作的存储库同步到你在 GitHub Enterprise Server 上的企业。 或者,您可以允许企业成员通过使用 GitHub Connect 来自动访问 GitHub.com 上的各项操作。 有关详细信息,请参阅以下内容。
-
[AUTOTITLE](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/manually-syncing-actions-from-githubcom) GitHub Enterprise Server 文档中的内容 -
[AUTOTITLE](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect) GitHub Enterprise Server 文档中的内容
-
-
你可以自定义自托管运行器计算机上可用的软件,或配置你的运行器运行与 GitHub 托管的运行器类似的软件。 支持运行器计算机使用 GitHub Actions 的软件是开源软件。 有关详细信息,请参阅
actions/runner和actions/runner-images存储库。
其他阅读材料
-
[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service) -
[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/using-self-hosted-runners-in-a-workflow)