SSH не работает в Windows с типом подключения Terraform Provider - PullRequest
0 голосов
/ 31 октября 2019

Я попытался создать экземпляр в AWS с помощью Terraform и попытался скопировать набор файлов во вновь созданный экземпляр AWS. Я использовал «инициатора» для того же самого, но для соединения, оно всегда говорит, что время соединения истекло.

В приведенном ниже примере я показал, как его файл AWS Pem, но я попытался с файлами ppk и pem. ничего не работает.

provider "aws" {
    region = "ap-southeast-1"
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
}
resource "aws_instance" "firsttest" {
    ami = "ami-061eb2b23f9f8839c"
    instance_type = "t2.micro"
    key_name = "deepak"
    provisioner "file" {
        source      = "index.html"
        destination = "/home/ubuntu/index.html"
    connection {
        type     = "ssh"
        user     = "ubuntu"
        private_key = file("D:/awskeyterraform/deepak.pem")
        host = "${aws_instance.firsttest.public_ip}"
        }
    }
    user_data = <<-EOF
        #!/bin/bash
        apt-get update -y
        apt-get install -y nginx
        systemctl enable nginx
        service nginx restart
        touch index.html
        EOF
    tags = {
        name = "terraform-firsttest"
    }
}

Ожидается, что следует скопировать index.html, но фактическое время ожидания соединения для подключения к вновь созданному экземпляру

1 Ответ

0 голосов
/ 11 ноября 2019

В Windows модуль подключения SSH не принимает «* .pem». Вместо этого он принимает файл PEM после переименования его в «id_rsa».

provider "aws" {
    region = "ap-southeast-1"
    access_key = "${var.access_key}"
    secret_key = "${var.secret_key}"
}
resource "aws_instance" "firsttest" {
    ami = "ami-061eb2b23f9f8839c"
    instance_type = "t2.micro"
    key_name = "deepak"
    provisioner "file" {
        source      = "index.html"
        destination = "/home/ubuntu/index.html"
    connection {
        type     = "ssh"
        user     = "ubuntu"
        private_key = "${file("D:/awskeyterraform/id_rsa")}"
        host = "${aws_instance.firsttest.public_ip}"
        }
    }
    user_data = <<-EOF
        #!/bin/bash
        apt-get update -y
        apt-get install -y nginx
        systemctl enable nginx
        service nginx restart
        touch index.html
        EOF
    tags = {
        name = "terraform-firsttest"
    }
}

Надеюсь, это решит проблему.

...