如何让远程执行预配置程序在磁盘附件之后应用?

时间:2019-04-18 07:09:45

标签: terraform

我有一个脚本,需要在配置我的实例并附加卷后运行:

jButton4.doClick();

当前该脚本使环境无法正常运行,因为该卷在运行时尚未连接。

是否可以仅在连接卷后运行remote-exec脚本?

2 个答案:

答案 0 :(得分:1)

您可以考虑在remote-exec中添加触发选项。其他粗略选择是增加睡眠几秒钟,或者脚本可以重试自身,或者检查磁盘的状态/存在然后尝试。

答案 1 :(得分:1)

您可以在任何资源上运行预配器(考虑使用null_resource pattern作为其极端版本),因此最好的做法是在aws_volume_attachment资源上运行预配器:

# ...

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"
    ]
  }
}