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

Amazon Linux 2023中cloud-init执行失败,Amazon Linux 2正常求助

解决Amazon Linux 2023上Terraform配置的cloud-init脚本无法执行的问题

你的cloud-init脚本无法在Amazon Linux 2023上执行,核心原因是shebang格式错误,同时Here文档的缩进也可能导致脚本解析失败。以下是具体修复方案:

修正后的Terraform cloud-init配置

data "cloudinit_config" "cloudinit" {
  gzip          = false
  base64_encode = false

  part {
    content_type = "text/x-shellscript"
    content      = <<-EOT
#!/bin/bash
echo "Running User Data on $HOSTNAME"
EOT
    filename     = "cloudinit.sh"
  }
}

关键修复点

  1. 修正shebang格式:将原脚本中的# !/bin/bash改为#!/bin/bash,#和!之间不能有空格,这是系统识别脚本解释器的标准格式。Amazon Linux 2023对脚本格式检查更严格,而Amazon Linux 2可能兼容了这种格式错误。
  2. 处理脚本缩进:使用<<-EOT替代<<EOT,可以去除脚本内容前的制表符缩进(注意是制表符而非空格),确保shebang顶格,避免因开头多余空格导致解释器无法识别。

验证步骤

  1. 应用修正后的Terraform配置,重新创建EC2实例。
  2. 登录实例查看/var/log/cloud-init-output.log,应能看到预期的Running User Data on [主机名]输出。
  3. 若问题仍存在,可检查/var/lib/cloud/instance/scripts/cloudinit.sh文件内容,确认shebang正确且无多余缩进;同时查看/var/log/cloud-init.log获取更详细的错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:49:58