terraform - 如何从命令行获取 Gitlab runner 注册令牌?
问题描述
我正在尝试部署一个 Gitlab 实例和准备好 Terraform 的跑步者。该脚本毫无问题地创建了Gitlab和跑步者,但我不知道如何在创建后自动注册跑步者。
有没有办法从命令行获取注册令牌?如果可能的话,我可以注册使用 Terraform 调用外部数据源。
解决方案
项目API 端点响应包含runners_token
密钥。您可以使用它来自动获取任何项目的运行器令牌。
然后,您可以通过几种方式使用它。一种方法是让您的跑步者注册脚本获取跑步者令牌本身,例如以下示例:
curl --fail --silent --header "Private-Token: ${GITLAB_API_TOKEN}" "https://$GITLAB_URL/api/v4/projects/${PROJECT}"
或者,您可以使用Gitlab Terraform 提供程序的gitlab_project
数据源从正在运行 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)
}
推荐阅读
- html - 如何使用Django.db.models Q模块查询多行用户输入文本数据
- sql - Oracle 的“WHERE () IN”的 SQL 等价物?
- python - 如何在不改变字典结构的情况下以元组为键存储 Python 字典?
- r - 在 R 中构建逻辑的计算
- git - gitignore 通配符不适用于多个文件扩展名
- matlab - 如何在MATLAB中取消填充矩阵?
- ms-access - 检查文本框是否为空以控制子表单的可见性
- batch-file - Findstr:在txt文件文件夹中搜索字符串列表
- java - RecyclerView 项目模板
- mysql - 如何在mysql查询中替换方括号[]