You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

cloud-init yaml配置含动态变量时schema校验报错问题求助

问题原因排查

你遇到的报错由两个关联问题共同导致:

  • YAML语法解析错误:你在runcmd第二个列表项中写入的--header="Authorization: Token $TOKEN"包含:加空格的组合,YAML会自动将这段内容识别为键值对(字典)结构,不符合runcmd要求的纯字符串数组格式,这就是报错信息中出现{'--header="Authorization': 'Token $TOKEN"'}字典结构的根本原因。
  • 变量作用域不共享:runcmd配置下的每一个列表项都是独立运行的 shell 进程,第一个列表项中定义的$TOKEN变量无法传递到第二个列表项的进程中,即便修复了YAML语法问题,后续wget请求也无法取到正确的TOKEN值。
修复方案

直接将两条命令合并为单条shell字符串写入runcmd即可同时解决两个问题,修改后的完整配置如下:

#cloud-config
---
users:
  - default
runcmd:
  - TOKEN=$(echo "Htkdi_8js") && wget -O /tmp/some.sh "https://some_public_website" --header="Authorization: Token $TOKEN"

修改后再执行校验命令就不会再报错,命令也能正常执行。

内容的提问来源于stack exchange,提问作者devwannabe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 17:09:01