繁体   English   中英

如何在cloud-init中设置和使用变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM