Crear una Maquina Virtual Linux con Terraform

En días pasados hemos hablado de IaC y de Terraform, hoy hablaremos de como crear o desplegar una maquina virtual en Azure usando esta herramienta, será una maquina Linux siendo la misma Ubuntu, necesitaremos crear unos archivos para la conexión SSH sobre esta maquina virtual los cuales generaremos con Puttygen, en total deben de ser 3 archivos .pub, .ppk y .pem.

Por otro lado deberemos de generar con «Visual Code Studio» unos archivos .tf que es el formato que lee el Terraform para la gestión de recursos en Azure, AWS o GCP, etc. yo uso Visual Code Studio ustedes son libres de usar la herramienta que mas les sea útil o fácil de usar.


Empecemos el primer archivo que crearemos se llamara «main.tf» y este debe de contener lo siguiente:

En este archivo estamos indicándole al sistema como se va a llamar nuestro Grupo de recurso, el cual va a contener todos los recursos de la maquina virtual, la localización del GR lo va a extraer del archivo «var» donde encontrara mas datos relacionados.

Mi archivo var.tf me indica 3 datos, el primero donde va a estar localizada esta maquina virtual y sus recursos «West Europe», también tiene una variable que es «azterraform» para darle formato a los nombres de los recursos que van a conformar esta maquina virtual y por ultimo, una variable «ssh» para la conexión segura a la maquina virtual una vez este dada de alta.

Por otra parte vamos a crear un archivo «network.tf» el cual va indicarnos el nombre de la tarjeta de red, el rango de IP, la Subnet y por ultimo reglas de seguridad para la conexión de la maquina virtual. Fíjense que aquí estoy indicándole al nombre de los recursos una variable «${var.prefix}» esto es para que tome parte del nombre y lo personalice, ese nombre lo establecí como «azterraform» al inicio al generar el archivo «vars.tf», ustedes podrán gestionarlo de la misma forma y personalizarlo a su gusto.

 

Por ultimo generamos el archivo mas importante «instance.tf» aquí contendrá y definiremos que tipo de maquina virtual vamos a crear.

Aquí como pueden apreciar indicamos el nombre de la MV, el tipo de maquina virtual que queremos, los datos del SO Linux, los datos del usuario e indicamos que la conexión a esta maquina virtual va a ser con SSH, es aquí donde establecemos los archivos SSH generados con el Puttygem

Al igual le indicamos que para la tarjeta de red use la que hemos gestionado y creado con el archivo «network.tf»

Bien una vez creado nuestros 4 archivos, todos deben de tener extension .tf para que el terraform pueda leerlos. Lo primero que haremos será abrir  una consola powershell o un bash según el sistema que tengamos en nuestra maquina e iniciamos sesión con «Az login -u «usuario» -p «password» o con solo el comando «az login» y el sistema nos abrirá una ventana del navegador para iniciar sesión.

Tener en cuenta y espero que así sea, que los 4 archivos .tf y los 3 archivos ssh estén en la misma carpeta, seria bueno que sea lo único que contengan esa carpeta

El primer comando que escribimos seria «Terraform init» para iniciar el terraform.

Luego introducimos «Terraform plan» para que lea los 4 archivos .tf

 

 

A continuación y si todo va bien y no nos ha dado algún error ejecutamos «Terraform apply» donde le estamos indicando que todo el plan anterior sea aplicado.

en un punto al usar el «Terrafom apply» nos pedira que confirmemos que queremos aplicar a crear los recursos y escribimos «Yes» de esta forma comenzara el despliegue.

Lo podremos comprobar en las capturas siguientes.

 

Al finalizar nos indica que la maquina virtual esta creada, y si vamos a nuestra suscrición de azure podremos ver que se a creado la maquina virtual con las características indicadas.

Por ultimo para destruir o eliminar este recurso, usaremos el comando «Terraform destroy» y nos lo eliminara.

 

Y hasta aquí esta entrada, la próxima será con Windows y veremos si en los siguientes entradas usamos videos en vez de capturas de pantalla.

Hasta luego