0

我无法将配置程序(“文件”和“远程执行”)与 aws lightsail 一起使用。对于“文件”配置程序,我不断收到连接被拒绝的端口 22 的拨号错误,“远程执行”给了我一个超时错误。我可以看到它一直在尝试连接到实例,但它就是无法连接到它。

对于文件配置器,我也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"
        }
  }
}
4

1 回答 1

1

除了身份验证信息之外,还需要告诉 Terraform 它应该使用哪个 IP 地址进行连接,如下所示:

connection {
  type        = "ssh"
  host        = "${self.public_ip_address}"
  private_key = "${file("my_key.pem")}"
  user        = "ubuntu"
  timeout     = "20s"
}

对于某些资源,Terraform 能够从资源属性中自动推断出一些连接详细信息,但目前 Lightsail 实例不支持此功能,因此有必要host明确指定参数。

于 2017-05-15T20:28:05.453 回答