利用 Terraform 自托管的 GitHub Runner

近年来,许多团队使用 GitHub Actions 来进行自动化构建和部署。GitHub Actions 提供了便捷的 UI,使得编写和维护 Workflows 变得非常简单。然而,当需要进行更加高级的定制和自动化时,自托管的 GitHub Runner 显然就成了不可或缺的选择。而在这篇文章中,我们将向大家介绍一种采用 Terraform 自托管的 GitHub Runner 的方法。

首先,你需要在 GitHub 上创建一个 Personal Access Token,该 Token 需要具有 repo、write:packages 和 read:packages 权限。接着,在 Terraform 的 main.tf 文件中,你可以按照以下方式进行配置:

“`

provider “github” {

token = var.github_token

organization = “YOUR_ORG_NAME”

}

resource “github_actions_runner_group” “this” {

name = “runner-group”

}

resource “github_actions_self_hosted_runner” “this” {

name = “runner-01”

runner_group_id = github_actions_runner_group.this.id

}

resource “github_actions_runner_token” “this” {

runner_id = github_actions_self_hosted_runner.this.id

}

“`

以上代码中,我们使用了 Terraform 的 GitHub Provider 来进行资源的管理,并通过创建不同的 resource 实现了自托管的 GitHub Runner 和 Token。其中,runner_group 是一个逻辑分组,可以将多个自托管 Runner 隶属于同一个 runner group,方便管理;runner_id 则代表唯一的 Runner ID,通过它来区分不同的 Runner,并将 Token 分配给对应的 Runner。

当上述配置完成后,你可以执行 `terraform apply` 命令,来创建自己的自托管 GitHub Runner。在这之后,你还需要按照 GitHub 提供的指引,下载 Runner 的二进制文件、为其添加权限,并注册到 Repositories 中。

值得一提的是,在使用自托管 GitHub Runner 时,使用的文件权限是在当前用户的权限之下进行的。因此,建议在执行 Terraform 命令之前,先确定好相关用户的权限,以避免在后续过程中出现不必要的问题。

经过了上述步骤,我们已经成功地创建了一个自托管的 GitHub Runner,并可以使用它来进行 Workflows 的定义和管理。同时,在采用 Terraform 进行自托管管理时,对于自托管 Runner 的启用和更新也变得异常简单。只需要执行 `terraform apply`,即可完成相关操作。

总之,采用 Terraform 来自托管 GitHub Runner 是一种非常便捷的方式。我们可以在 Terraform 中配置 Runner、Token 等相关资源,从而轻松、可靠地管理自己的 Runner。接下来,就让我们试着利用 Terraform 来创建自己的 GitHub Runner,并享受更为便捷的自动化编译、部署吧!

详情参考

了解更多有趣的事情:https://blog.ds3783.com/