Skip to main content

使用自托管运行器进行通信

自托管运行器可以与 你的 GitHub Enterprise Server 实例 和 GitHub.com 进行通信

自托管运行器连接到 你的 GitHub Enterprise Server 实例 以接收作业分配并下载新版本的运行器应用程序。 自托管运行器使用 HTTP(S) long poll 打开 GitHub 连接 50 秒,如果没有收到任何响应,就会暂停并创建新的长轮询。 应用程序必须在机器上运行才能接受和运行 GitHub Actions 作业。

GitHub Actions 运行器应用程序是开源的。 可以参与 runner 存储库并在其中提交问题。 发布新版本后,运行器应用程序将在 24 小时内自动更新。

Note

如果使用临时运行器并禁用了自动更新,则在升级 GitHub Enterprise Server 之前,应首先将自托管运行器升级到升级后的实例将运行的运行器应用程序版本。 在升级临时运行器之前升级 GitHub Enterprise Server 可能会导致运行器脱机。 有关详细信息,请参阅“升级过程概述”。

自托管运行器与 GitHub Actions 未连接超过 14 天,将被自动从 GitHub 中删除。 临时自托管运行器与 GitHub Actions 未连接超过 1 天,将被自动从 GitHub 中删除。

自托管运行器和 GitHub 通过 HTTP(端口 80)或 HTTPS(端口 443)建立连接。 若要确保通过 HTTPS 进行连接,请为 你的 GitHub Enterprise Server 实例 配置 TLS。 有关详细信息,请参阅“配置 TLS”。

只有从运行器到 GitHub Enterprise Server 的出站连接是必需的。 不需要从 GitHub Enterprise Server 到运行器的入站连接。 若要使缓存正常工作,运行器必须能够与 Blob 存储通信,并直接从其中下载内容。

GitHub Enterprise Server 必须通过 HTTP(S) 在 你的 GitHub Enterprise Server 实例 的主机名和 API 子域接受来自运行器的入站连接,并且运行器必须允许通过 HTTP(S) 与 你的 GitHub Enterprise Server 实例 的主机名和 API 子域建立出站连接。

自托管运行器不需要接入任何外部互联网即可运行。 因此,可以使用网络路由在自托管运行器与 GitHub Enterprise Server 之间直接通信。 例如,可以将私有 IP 地址分配给自托管运行器,并配置路由以将流量发送到 GitHub Enterprise Server,无需流量便可浏览公用网络。

自托管运行器与 GitHub.com 之间的通信

自托管运行器不需要连接到 GitHub.com,除非您已启用自动访问 GitHub Enterprise Server 的 GitHub.com 操作。 有关详细信息,请参阅“关于在企业中使用操作”。

如果已启用自动访问 GitHub.com 操作,则自托管运行器将直接连接到 GitHub.com 以下载操作。 你必须确保机器具有适当的网络访问权限才可与以下列出的 GitHub URL 通信。

Shell
github.com
api.github.com
codeload.github.com
pkg.actions.githubusercontent.com

Note

列出的一些域名使用 CNAME 记录配置。 一些防火墙可能要求你为所有 CNAME 记录递归添加规则。 请注意,CNAME 记录将来可能会改变,只有列出的域名将保持不变。

延伸阅读