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
- 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:
- 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”
- locals.tf
- Aquí tenemos las variables utilizadas para los nombres.
- variables.tf
- Aquí declararemos el provider de “Random” para los string de numeros de las variables:
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
- az account list –output table
- az account set –subscription <SubscriptionId>
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.
- 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.
- Una vez verificado atentamente nuestro plan de ejecución podremos completar la implementación.
- Para esto debemos ingresar el valor: “yes”.
- Ahora podremos ver el detalle de los recursos a crearse:
Comprobación de los recursos creados
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.
- Ahora procederemos a ejecutar <terraform destroy>
- 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.
- Para ejecutar la operación, ingresamos el valor: “yes”.
- Al finalizar veremos la cantidad de recursos destruidos.
Leave a Reply