【发布时间】:2019-07-18 15:52:23
【问题描述】:
我有以下实例:
resource "aws_instance" "FWInstance" {
disable_api_termination = false
iam_instance_profile = "${aws_iam_instance_profile.FirewallBootstrapInstanceProfile2Tier.name}"
instance_initiated_shutdown_behavior = "stop"
ebs_optimized = true
ami = "${var.PANFWRegionMap[var.aws_region]}"
instance_type = "m4.xlarge"
ebs_block_device {
device_name = "/dev/xvda"
volume_type = "gp2"
delete_on_termination = true
volume_size = 60
}
key_name = "${var.ServerKeyName}"
monitoring = false
network_interface {
device_index = 0
network_interface_id = "${aws_network_interface.FWManagementNetworkInterface.id}"
}
user_data = "${base64encode(join("", list("vmseries-bootstrap-aws-s3bucket=", var.MasterS3Bucket)))}"
}
通过 terraform 运行它时,它会创建实例,但会在 VM 登录时停止,并且从不运行 user_data 代码。
我尝试像这样使用 remote_exec:
provisioner "remote-exec" {
inline = ["# Connected!"]
}
等待 5 分钟。并且由于那时没有创建实例而出错。
有没有办法通过 terraform 在这个 ec2 实例中运行用户数据?当我在没有 terraform 的 AWS 中创建类似的实例时,它可以正常工作。
【问题讨论】:
-
您是否尝试检查实例上的日志以查看用户数据未运行的原因?如果您的
remote-exec配置程序未连接,那么您可能正在查看防火墙问题或配置错误。您没有提供任何错误消息或您正在运行的操作系统类型的任何信息,这使得您很难为您提供帮助。例如,不同的操作系统(如 Windows、Amazon Linux、Ubuntu 和 Container Linux)以不同的方式解析用户数据。尝试运行带有调试输出的 Terraform。见terraform.io/docs/internals/debugging.html
标签: amazon-web-services terraform