2017-05-13 5 views
0

Ich habe Probleme, den Provisioner (sowohl "Datei" und "Remote-Exec") mit AWS Lightsail zu verwenden. Für den "Datei" -Berater bekam ich einen Einwahlfehler an Port 22 mit der Verbindung verweigert, die "Remote-Exec" gibt mir einen Timeout-Fehler. Ich kann sehen, dass es versucht, sich mit der Instanz zu verbinden, aber es kann sich einfach nicht verbinden.Fehler bei Verwendung von Terraform Provisioner mit AWS-Lightsail

Für den Datei-Provisioner habe ich auch mit scp direkt versucht und es funktioniert ganz gut.

Eine Probe Schnipsel des Anschlussblocks ist verwende ich wie folgt zusammen:

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

Um diese Frage zu beantworten, würde es helfen, mehr von Ihrer Konfiguration zu sehen. Insbesondere bezieht sich die Ressource "aws_lightsail_instance", die diesen Provisioner umgibt, und die "Ressource" aws_lightsail_key_pair "" darauf. (Mit allen sensiblen Informationen, natürlich redigiert!) –

+0

@MartinAtkins Ich habe das Skript aktualisiert. In der Tat habe ich nicht verwendet. " aws_lightsail_key_pair "Ich habe ein Schlüsselpaar in der Webkonsole erstellt und benutze es direkt im Skript. zB my_key_pair, der private Schlüssel für dieses Schlüsselpaar ist my_key.pem. – Chen

Antwort

1

Neben der Authentifizierungsinformationen, ist es auch notwendig, Terraforming zu sagen, welche IP es verwenden, um eine Verbindung ansprechen sollte, wie dies :

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

für einige Ressourcen Terraforming in der Lage, automatisch einige der Verbindungsdaten aus den Ressourcenattributen zu schließen, aber derzeit, die unterstützt wird nicht für Lightsail Instanzen und es ist so notwendig, dieangebenArgument explizit.

+0

Danke, lass es mich später versuchen. – Chen

+0

Danke, arbeite gerne Ein Zauber :). – Chen

Verwandte Themen