![](https://madsblog.net/wp-content/uploads/2023/08/image-41.png)
Terraform nos permite implementar y destruir infraestructura en minutos. Las herramientas/tecnologías de IaC se han convertido en pilares fundamentales para el desarrollo y la gestión de la Infra.
A través de la implementación de soluciones de Infraestructura como Código podemos garantizar la consistencia, replicabilidad y escalabilidad de nuestros entornos, minimizando los errores manuales y optimizando el despliegue.
En este caso estaremos desplegando y destruyendo una pequeña infraestructura de Azure Functions utilizando Terraform.
Repositorio utilizado
Estaremos utilizando el siguiente repo https://github.com/mdiloreto/madsblog-terraform-01 para realizar este laboratorio.
Descripción del codigo del repositorio
En este repositorio encontraremos los siguientes archivos:
- main.tf
- Declaración del provider
![](https://madsblog.net/wp-content/uploads/2023/08/image-79.png)
- En caso de que estes configurando un entorno colaborativo de terraform te recomiendo generar un Remote State File
- Creación del RG, Storage Account y App Service Plan:
![](https://madsblog.net/wp-content/uploads/2023/08/image-80.png)
- Creación de Azure Functions, configuración de runtime, version de runtime y habilitación de Cors para Portal.Azure. Esto ultimo nos permitira utilizar la sección de Test de “Code+Test”
![](https://madsblog.net/wp-content/uploads/2023/08/image-81.png)
- locals.tf
- Aquí tenemos las variables utilizadas para los nombres.
![](https://madsblog.net/wp-content/uploads/2023/08/image-82.png)
- variables.tf
- Aquí declararemos el provider de “Random” para los string de numeros de las variables:
![](https://madsblog.net/wp-content/uploads/2023/08/image-83.png)
Cómo conectarnos a Azure CLI
Debemos realizar el login a nuestro tenant y subscripción de Azure. Para esto debemos ingresar los siguientes comandos en Azure CLI:
- az login
![](https://madsblog.net/wp-content/uploads/2023/08/image-4.png)
- az account list –output table
![](https://madsblog.net/wp-content/uploads/2023/08/image-16.png)
- az account set –subscription <SubscriptionId>
![](https://madsblog.net/wp-content/uploads/2023/08/image-6.png)
Desplegar infraestructura con Terraform
Para desplegar infraestructura con Terraform existen 3 etapas Plan + Apply + Destroy.
Planear (Plan): Antes de hacer cambios reales en la infraestructura, Terraform crea un plan de ejecución que muestra qué acciones se llevarán a cabo. Esto permite revisar los cambios propuestos y asegurarse de que el resultado será el esperado.
Aplicar (Apply): Una vez que se ha revisado y aprobado el plan, Terraform procede a realizar los cambios necesarios para alcanzar el estado deseado descrito en el código. Durante esta fase, se crean, modifican o eliminan recursos, según sea necesario. A ejecutar esta etapa se incluye Plan.
Destruir (Destroy): Si en algún momento es necesario eliminar toda la infraestructura desplegada (por ejemplo, para reducir costos o porque el proyecto ha finalizado), Terraform puede destruir todos los recursos que creó. Esto se hace de manera ordenada y controlada, evitando errores manuales y garantizando que no queden recursos huérfanos.
Terraform Apply
Al ejecutar <terraform apply> nos mostrará el plan de ejecución de todos los recursos en nuestros archivos .tf del repositorio.
- En este caso estaremos generando todos los recursos para nuestra Function App.
![](https://madsblog.net/wp-content/uploads/2023/08/image-43.png)
- Cómo podemos ver en la proxima imagen, se destruirá un RG que estaba siendo administrado por Terraform y fue quitado de los archivos .tf.
![](https://madsblog.net/wp-content/uploads/2023/08/image-44.png)
- Una vez verificado atentamente nuestro plan de ejecución podremos completar la implementación.
- Para esto debemos ingresar el valor: “yes”.
![](https://madsblog.net/wp-content/uploads/2023/08/image-45.png)
- Ahora podremos ver el detalle de los recursos a crearse:
![](https://madsblog.net/wp-content/uploads/2023/08/image-46-1024x163.png)
![](https://madsblog.net/wp-content/uploads/2023/08/image-47-1024x248.png)
Comprobación de los recursos creados
![](https://madsblog.net/wp-content/uploads/2023/08/image-48-1024x436.png)
Terraform destroy
Una vez que ya hemos utilizado nuestra infra para el proposito deseado, podemos proceder a destruirla: esto lo haremos en cuestion de segundos. Terraform controla toda la infra y conoce las configuraciones, dependencias e interrelaciones. Nosotros no debemos encargarnos de nada.
- Verificamos que no hay cambios a través de un Terraform Plan.
![](https://madsblog.net/wp-content/uploads/2023/08/image-74-1024x139.png)
- Ahora procederemos a ejecutar <terraform destroy>
![](https://madsblog.net/wp-content/uploads/2023/08/image-75-1024x398.png)
- Podremos ver inmediatamente, al igual que con <terraform apply> el plan de “destrucción”.
- En este caso, podremos ver detalladamente, todos los recursos que serán destruidos.
![](https://madsblog.net/wp-content/uploads/2023/08/image-76.png)
- Para ejecutar la operación, ingresamos el valor: “yes”.
![](https://madsblog.net/wp-content/uploads/2023/08/image-77.png)
- Al finalizar veremos la cantidad de recursos destruidos.
![](https://madsblog.net/wp-content/uploads/2023/08/image-78.png)
Leave a Reply