我无法使用配置器(“file”和“remote-exec”)和aws lightsail。对于“文件”配置程序,我一直收到拨号错误到端口22连接被拒绝,“remote-exec”给我一个超时错误。我可以看到它一直试图连接到实例,但它无法连接到它。
对于文件配置程序,我也直接尝试使用scp
并且它运行正常。
我正在使用的连接块的示例片段如下:
resource "aws_lightsail_instance" "han-mongo" {
name = "han-mongo"
availability_zone = "us-east-1b"
blueprint_id = "ubuntu_16_04"
bundle_id = "nano_1_0"
key_pair_name = "my_key_pair"
user_data = "${file("userdata.sh")}"
provisioner "file" {
source = "file.service"
destination = "/home/ubuntu"
connection {
type = "ssh"
private_key = "${file("my_key.pem")}"
user = "ubuntu"
timeout = "20s"
}
}
}
答案 0 :(得分:1)
除了身份验证信息之外,还需要告诉Terraform应该使用哪个IP地址进行连接,如下所示:
connection {
type = "ssh"
host = "${self.public_ip_address}"
private_key = "${file("my_key.pem")}"
user = "ubuntu"
timeout = "20s"
}
对于某些资源,Terraform能够从资源属性中自动推断出一些连接细节,但目前Lightsail实例不支持这种情况,因此必须明确指定host
参数。