Cómo iniciar sesión en una instancia de AWS ec2 creada por un script de terraform

Terraform proporciona la capacidad de asociar pares de claves con instancias EC2. Para que pueda generar un par de claves, importarlo en su script Terraform con el recurso aws_key_pair de esta manera:

recurso “aws_key_pair” “auth” {
key_name = “$ {var.key_name}”
public_key = “$ {file (var.public_key_path)}”
}

Donde var.public_key_path está en su archivo variables.tf :

variable “public_key_path” {
descripción = << DESCRIPCIÓN
Ruta a la clave pública SSH.
Asegúrese de agregar este par de claves
a su agente local de SSH para que los proveedores
puede conectarse
Ejemplo: ~ / .ssh / my_key.pub
DESCRIPCIÓN
}

… y conéctelo al recurso de instancia:

key_name = “$ {aws_key_pair.auth.id}”

y Terraform se encargará del resto. A partir de ese momento, es como SSHing en cualquier instancia.

Terraform es solo una forma de desplegar su infraestructura. La funcionalidad depende de los componentes que haya implementado. Por lo tanto, depende del tipo de sistema operativo que haya seleccionado al crear la instancia.

Suponiendo que ha definido un par de claves en su script de terraform, a continuación se muestra el nombre de usuario para cada distribución con la que puede conectarse a la instancia:

Amazon Linux: usuario ec2

Ubuntu: ubuntu

Debian: admin

RHEL 6.4 y posterior: usuario ec2

Windows: Administrador (la contraseña se debe descifrar de la consola con el archivo pem)

Terraform viene con la facilidad de SSH la instancia EC2 que ha creado. Para acceder a la instancia EC2, deberá proporcionar un “aprovisionador”. Los proveedores proporcionan una forma de trabajar con los recursos aws que ha creado usando terraform, también necesitará crear una “conexión” en el proveedor para acceder al ec2 (para su información, he creado una instancia de ubuntu). Debajo del código de muestra que debería ayudar. Supongo que ya tiene un par de claves existente, si no, inicie sesión en AWS para crear uno.

recurso “aws_instance” “RakeshInstance” {
ami = “ami-cd0f5cb6”
instancia_tipo = “t2.micro”
etiquetas {
Nombre = “Rakesh instancia”
}
key_name = “rakesh-17-6-2017” ### Reemplácelo con una clave existente
aprovisionador “remoto-ejecutivo” {
en línea = [
“chmod + x /tmp/script.sh”,
“/tmp/script.sh args”,
]
conexión {
tipo = “ssh”
usuario = “ubuntu”
private_key = “$ {file (” rakesh-17-6-2017.pem “)}” ### proporciona la clave
tiempo de espera = “4m”
agente = falso
}
}
}

Salud.