[英]How to set and use variables in cloud-init?
我正在尝试调用 API 并获取一个令牌,以在cloud-config
期间在runcmd
的下一个 API 调用中使用,作为 Azure VMSS 部署和 Terraform 的一部分。这如何在cloud-init
中实现?
这是我尝试过的,但失败了。
- [su, runner-admin, -c, 'REG_TOKEN=$(curl -sX POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${var.runner_manage_token}" https://api.github.com/orgs/${var.github_organisation}/actions/runners/registration-token | jq .token --raw-output)']
- [su, runner-admin, -c, '/actions-runner/config.sh --url https://github.com/${var.github_organisation} --token $${REG_TOKEN} --runnergroup ${var.runner_group}']
还有其他方法可以达到相同的结果吗?
谢谢
所以,我最终在cloud-init
中使用write_files
来解决我的问题,如下所示:
write_files:
- path: /run/create-runner.sh
content: |
#!/bin/bash
REG_TOKEN=$(curl -sX POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${var.runner_manage_token}" https://api.github.com/orgs/${var.github_organisation}/actions/runners/registration-token | jq .token --raw-output)
/actions-runner/config.sh --unattended --url https://github.com/${var.github_organisation} --token $${REG_TOKEN} --runnergroup ${var.runner_group} --labels ${var.runner_labels} --replace
owner: 'runner-admin'
permissions: '0700'
defer: true
然后在runcmd
中运行它:
runcmd:
- [mkdir, '/actions-runner']
- cd /actions-runner
- [curl, -o, 'actions-runner.tar.gz', -L, 'https://github.com/actions/runner/releases/download/v${var.runner_version}/actions-runner-linux-x64-${var.runner_version}.tar.gz']
- [tar, -xzf, 'actions-runner.tar.gz']
- [chmod, -R, 777, '/actions-runner']
- [su, runner-admin, -c, /run/create-runner.sh]
- ./svc.sh install runner-admin
- ./svc.sh start
- [rm, '/actions-runner/actions-runner.tar.gz']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.