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

如何让Terraform的cloudinit_config数据源调用本地用户数据脚本?

解决方法

你可以直接用Terraform内置的file()函数读取本地userdata.sh脚本的内容,替换掉原来内联的脚本代码,就能实现直接引用本地脚本的需求。

修改后的main.tf配置

data "cloudinit_config" "example" {
  gzip          = false
  base64_encode = true

  part {
    content_type = "text/x-shellscript"
    filename     = "/var/atlassian/application-data/jira/example.sh"
    content      = file("${path.module}/userdata.sh")
  }
}

补充说明

  • ${path.module}是Terraform内置变量,指向当前模块所在目录,能确保脚本路径的准确性,避免因执行目录不同导致找不到文件的问题。
  • 如果userdata.sh和main.tf在同一目录下,直接写file("userdata.sh")也能生效,但更推荐用${path.module}来保证路径可靠性。
  • 要是你的脚本需要动态替换变量,可以改用templatefile()函数,示例写法:content = templatefile("${path.module}/userdata.sh", { var1 = value1, var2 = value2 }),同时在userdata.sh里用${var1}的形式引用变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:31:40