如何从命令行获取Gitlab运行程序注册令牌?

时间:2020-07-28 14:58:19

标签: terraform gitlab-ci

我正在尝试部署一个Gitlab实例,并准备好使用Terraform进行运行。该脚本可以同时创建Gitlab和运行程序,但我不知道如何在创建后自动注册运行程序。

是否可以从命令行获取注册令牌?如果可以的话,我可以注册,仅使用Terraform调用外部数据源。

1 个答案:

答案 0 :(得分:2)

projects API endpoint响应包含runners_token键。您可以使用它来自动获取任何项目的运行者令牌。

然后可以通过几种方式使用它。一种方法是让跑步者注册脚本本身获取跑步者令牌,例如以下示例:

curl --fail --silent --header "Private-Token: ${GITLAB_API_TOKEN}" "https://$GITLAB_URL/api/v4/projects/${PROJECT}"

或者您可以使用Gitlab Terraform providergitlab_project data source从正在运行的Terraform中获取它,然后将其注入到运行注册脚本的事物中,例如模板文件:

data "gitlab_project" "example" {
  id = 30
}

locals {
  runner_config = {
    runner_token = data.gitlab_project.example.runners_token
  }
}

output "example" {
  value = templatefile("${path.module}/register-runners.sh.tpl", local.runner_config)
}