Terraform 如何在磁盘附件后应用远程exec provisioner?
我有一个脚本,需要在配置实例并连接卷后运行该脚本:Terraform 如何在磁盘附件后应用远程exec provisioner?,terraform,Terraform,我有一个脚本,需要在配置实例并连接卷后运行该脚本: resource "aws_instance" "controller" { ... provisioner "remote-exec" { connection { type = "ssh" user = "centos" } inline = [ "download and run script to verify environment" ]
resource "aws_instance" "controller" {
...
provisioner "remote-exec" {
connection {
type = "ssh"
user = "centos"
}
inline = [
"download and run script to verify environment"
]
}
}
resource "aws_ebs_volume" "controller-ebs-sdb" {
...
}
resource "aws_volume_attachment" "controller-volume-attachment-sdb" {
device_name = "/dev/sdb"
volume_id = "${aws_ebs_volume.controller-ebs-sdb.id}"
instance_id = "${aws_instance.controller.id}"
}
当前,脚本在环境中失败,因为它运行时卷尚未连接
是否可以在卷被附加后运行远程Excel脚本?
可以考虑在远程Excel中添加触发器选项。另一个粗略的选择是添加睡眠几秒钟,或者脚本可以自己重试,或者检查磁盘的状态/存在性,然后重试 您可以在任何资源上运行provisioner(请考虑此的极端版本),因此最好在aws\u volume\u附件上运行它
资源:
# ...
resource "aws_volume_attachment" "controller-volume-attachment-sdb" {
device_name = "/dev/sdb"
volume_id = "${aws_ebs_volume.controller-ebs-sdb.id}"
instance_id = "${aws_instance.controller.id}"
provisioner "remote-exec" {
connection {
host = "${aws_instance.controller.public_ip}"
type = "ssh"
user = "centos"
}
inline = [
"download and run script to verify environment"
]
}
}