Ejemplo práctico de conexión de 3 redes con sus correspondientes router y mediante la técnica de «enrutamiento estático«. Se utilizará la herramienta «Packet Tracer» de Cisco Systems. Los archivos utilizados son:
Veremos dos ejemplos sencillos, utilizando la técnica de “provisioner” y “copia desde S3”.
Técnica “provisioner”.
Con esta técnica indicamos los archivos a copiar desde un origen a un destino y utilizamos la clave privada para copiar con el apartado “provisioner”-“file”, con “provisioner”-“remote-exec” se crea un retardo de tiempo necesario para dar tiempo a finalizar los comandos ejecutados en el apartado “datos de usuario”.
El archivo main.tf
provider «aws» {
region = «us-east-1»
}
resource «aws_instance» «terraform-ec2-apache» {
ami = «ami-064519b8c76274859» # AMI de Linux Debian
instance_type = «t2.micro»
tags = {
Name = «Srv1Debian» # Asigna nombre a la instancia
}
key_name = «vockey» # Clave SSH creada en AWS por el Lab
# Bloque de seguridad (security group) para permitir tráfico SSH
Ejecución de los apartados de “remote-exec” y “file” de “provisioner”.
Resultado:
En la carpeta “/var/www/html” tenemos los archivos creados con “echo” en el apartado de “datos de usuario” y el archivo “equipos.php” mediante el apartado “provisioner” con “file”.
Anotaciones:
Mediante el comando “self”, terraform obtiene información del recurso actual.
Key_name es el nombre del par de claves generados dentro de la consola de AWS, en los laboratorios de AWS Academy, es la clave “vockey”.
Private_key es la clave privada (.pem) que descargamos desde el “AWS Details” en el laboratorio de AWS Academy.
En el apartado de “provisioner” con “remote-exec”, en lugar de ejecutar comandos con funciones concretas, lo utilizamos para realizar un retraso de tiempo para que antes de copiar archivos se terminen de ejecutar los comandos del apartado “datos de usuario”.
Técnica “achivos en S3”.
Mediante está técnica los archivos estarán en un bucket de S3 y se realizará la copia a EC2 porque tiene privilegios proporcionados por el Rol asignado durante el proceso de creación de la EC2.
Creación del bucket.
aws s3 mb s3://volcadojmcr –region us-east-1
Copia de todos los archivos necesarios a S3.
aws s3 cp . s3://volcadojmcr/ –recursive
El archivo “main.tf”
provider «aws» {
region = «us-east-1»
}
resource «aws_instance» «terraform-ec2-apache» {
ami = «ami-064519b8c76274859» # AMI de Linux Debian
instance_type = «t2.micro»
tags = {
Name = «Srv1Debian» # Asigna nombre a la instancia
}
key_name = «vockey» # Clave SSH creada en AWS por el Lab
# Bloque de seguridad (security group) para permitir tráfico SSH
Rol asignado a la EC2 durante su creación, muy importante para tener privilegios de copia desde S3. Recordar que este profile está ya creado por los laboratorios de AWS Academy (Learner Lab).
iam_instance_profile = «LabInstanceProfile» # Asigna el perfil de instancia aquí
Copia de todos los archivos del bucket S3 a la carpeta “/var/www/html”.
Los archivos copiados se pueden ver en la siguiente imagen, donde se puede comprobar que el propietario es el usuario “root” (copia desde el apartado “datos de usuario”).