【发布时间】:2019-09-04 00:41:21
【问题描述】:
我正在创建 aws_instance 资源并运行配置程序,但 SSH 连接永远不会成功。
这是我的资源代码:
resource "aws_instance" "pos" {
ami = "ami-c58c1dd3"
instance_type = "m4.xlarge"
subnet_id = "${var.subnet_id_1}"
key_name = "${var.key_name}"
connection {
type = "ssh"
user = "ec2-user"
private_key = "${file(var.private_key_path)}"
host = "aws_instance.instance.private_ip"
}
provisioner "remote-exec" {
inline = [
"sudo yum install nginx -y",
"sudo service nginx start"
]
}
}
在创建过程中,我一遍又一遍地重复以下输出:
aws_instance.pos (remote-exec): Connecting to remote host via SSH...
aws_instance.pos (remote-exec): Host: aws_instance.insance.private_ip
aws_instance.pos (remote-exec): User: ec2-user
aws_instance.pos (remote-exec): Password: false
aws_instance.pos (remote-exec): Private key: true
aws_instance.pos (remote-exec): Certificate: false
aws_instance.pos (remote-exec): SSH Agent: false
aws_instance.pos (remote-exec): Checking Host Key: false
aws_instance.pos: Still creating... [40s elapsed]
SSH 连接永远不会成功,最终我必须终止该命令。但是,EC2 实例已成功创建,我可以使用私钥(PEM 文件)从本地机器 SSH 进入。
我也尝试在主机字段中使用self.public_ip,但产生了相同的结果。如何连接到 EC2 实例并在创建期间对其进行配置?
【问题讨论】:
标签: amazon-web-services terraform terraform-provider-aws