Ric*_*den 0 amazon-ec2 amazon-web-services terraform
我尝试使用 Remote-exec 配置程序来检查新 AWS ec2 实例上的用户数据是否已完成,但我不断收到权限被拒绝的错误。
错误是。
bash: /tmp/terraform_409380328.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)
我们使用 Terraform 版本 10.8
有人可以帮忙吗?
provisioner "remote-exec" {
inline = [
"set -x",
"chmod +x /tmp/*sh",
"/bin/bash -c \"timeout 300 sed '/finished-user-data/q' <(tail /var/lib/cloud/data/result.json)\"",
]
connection {
type = "ssh"
user = "${var.user}"
private_key = "${file("${var.private_key}")}"
agent = false
}
}
Run Code Online (Sandbox Code Playgroud)
我发现问题是我们的基础映像 (ami) 已硬化,并且阻止脚本从 /tmp 运行,这正是 terraform 正在尝试做的事情。
通过使用 script_path 选项,我能够指示 terraform 在不同的目录中创建并运行脚本。
然后,我可以使用 cloud-init status --wait 命令等待用户数据完成。
provisioner "remote-exec" {
inline = [
"sudo cloud-init status --wait",
]
connection {
type = "ssh"
user = "${var.user}"
private_key = "${file("${var.private_key}")}"
agent = false
script_path = "/home/${var.user}/user-data-check.sh"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3775 次 |
| 最近记录: |