Publicación de Módulos en Terraform y Pruebas en Azure
Resumen
¿Cómo publicar un módulo en Terraform?
Publicar un módulo en Terraform puede parecer una tarea compleja, pero conocer el paso a paso hace que el proceso sea mucho más sencillo. Imagínate que ya tienes el release de tu proyecto creado en GitHub y ahora necesitas dar los siguientes pasos para publicarlo en el registro de Terraform. Aquí te mostramos cómo hacerlo, detalladamente.
¿Cómo vincular correctamente tu repositorio de GitHub con Terraform?
El vínculo entre tu cuenta de GitHub y Terraform es crucial, y Terraform depende de que tu repositorio esté nombrado adecuadamente.
Estructura de nombres: Asegúrate de que el nombre de tu repositorio siga la convención Terraform-nombreProveedor-nombreMódulo.
Ajustes de nombre: Si tu repositorio no aparece al intentar publicar, revisa el nombre y edítalo desde la sección de settings si es necesario.
Conseguir este enlace te permite publicar tus módulos directamente desde el interfaz de Terraform, facilitando y agilizando todo el proceso.
¿Cómo configurar y probar un módulo en Terraform?
Una vez que tu módulo esté publicado en el registro, es hora de configurar y hacer algunas pruebas para asegurarte de que funcione correctamente.
Crear el archivo principal: Crea una carpeta en tu repositorio llamada registro y dentro un archivo main.tf.
Configurar el proveedor: Define el proveedor (en este caso, Azure) y el grupo de recursos.
Agregar el módulo: Inserta el módulo publicado en el registro de Terraform, asegurándote de completar las variables requeridas.
Verificar elementos necesarios: Usa IntelliSense de Terraform para ver los elementos faltantes, como nombres de grupos y cuentas.
Por ejemplo, un bloque para un recurso de Azure podría ser:
Los siguientes pasos involucran inicializar tu proyecto y aplicar el plan que has creado.
Inicialización: Utiliza terraform init para iniciar tu módulo y asegurarte de que todas las dependencias estén correctamente configuradas.
Crear el plan: Crea el plan con terraform plan -out=plan.out y verifica cualquier advertencia o error que aparezca.
Corrección de errores: Si recibes mensajes de advertencia sobre recursos obsoletos o problemas de configuración como nombres demasiado largos, es importante solucionarlos antes de proceder.
Aquí es importante mencionar que es esencial mantener tus módulos actualizados, especialmente si tienen varios años.
¿Cómo aplicar los cambios y verificar la implementación?
El último paso es aplicar los cambios configurados y verificar su correcta implementación en el portal correspondiente.
Aplicar plan: Con terraform apply plan.out, aplica el plan y asegúrate de que todos los recursos se despliegan sin errores.
Verificación visual: Dirígete al portal de Azure y accede a la sección de grupos de recursos para confirmar que tu aplicación de functions está desplegada.
Consejos adicionales
Publicar tus módulos no solo enriquece tu experiencia con Terraform, sino que también te otorga la oportunidad de compartir tu trabajo con otros. Intenta publicar tus propios módulos, desde máquinas virtuales hasta aplicaciones complejas. Esta práctica te ayudará a mejorar habilidades con Terraform mientras contribuyes a la comunidad.
Ponte manos a la obra, prueba, publica y no olvides mostrar tus avances en los comentarios. ¡Tu participación y creatividad no tienen límites!
Me diverti mucho haciendo esto, no conocia esta funcionalidad de crear modulos hasta que vi este curso, aqui esta mi aporte: un modulo en azure para crear 2 maquinas una de linux y una de windows que comparten un file system, el lio es que no he podido hacer que el montaje de la maquina de windows quede persistente, al iniciar sesion con rdp la unidad montada no es accesible, sin embargo durante la creacion del montaje hago que se cree un archivo y en efecto parece que la maquina estuvo montada y crea el archivo:
Comparto mi modulo publicado en terraform registry. Es un módulo Terraform reutilizable que automatiza la creación de la infraestructura base de red en AWS. En lugar de crear 20+ recursos manualmente este encapsula la creación de una VPC en AWS.
Comparto mi proyecto publicado en terraform
Comparto el codigo de "terraform-azurerm-azurefunctions" actualizado solo para linux.