El despliegue automatizado de los recursos en la nube se ha convertido en una parte vital de las operaciones modernas de TI. Utilizando herramientas como GitHub Actions para desplegar los recursos Azure simplifica los flujos de trabajo, reduce los errores manuales y acelera la ejecución de proyectos. Este artículo explora cómo implementar el despliegue automatizado de los recursos Azure utilizando GitHub Actions.

Comprender las bases

GitHub Actions es una plataforma continua de integración y despliegue continuo (CI/CD) que permite a los desarrolladores automatizar los flujos de trabajo directamente en sus repositorios GitHub. Azure, la plataforma cloud de Microsoft, ofrece una variedad de recursos como Virtual Machines, Databases y App Services que pueden ser proporcionados automáticamente a través de scripts y APIs.

Prerrequisitos

  • Cuenta Azure con permisos necesarios
  • Repositorio GitHub para su proyecto
  • Azure CLI instalado localmente para la configuración inicial
  • Servicio Principal con el rol de Contributor asignado en Azure

Configuración de Azure Service Principal

En primer lugar, crear un Director de Servicio para permitir que GitHub Actions autentique con Azure. Usar el Azure CLI:

Note down the appId], password], and tenant[. These will be added as secrets in GitHub.

Configuración de secretos GitHub

Navegue a su repositorio GitHub, luego vaya a Ajustes > Secretos > Acciones. Agregue los siguientes secretos:

  • AZURE CLIENT ID : su appId
  • AZURE SECRET: su contraseña
  • AZURE TENANT ID : su inquilino
  • AZURE SUBSCRIPTION ID: su ID de suscripción

Creación del flujo de trabajo de GitHub Actions

En su repositorio, cree un nuevo archivo de flujo de trabajo bajo . Este archivo definirá los pasos para desplegar los recursos de Azure automáticamente.

name: Deploy Azure Resources

on:
 push:
 branches:
 - main

jobs:
 build-and-deploy:
 runs-on: ubuntu-latest
 steps:
 - name: Checkout code
 uses: actions/checkout@v3

 - name: Login to Azure
 uses: azure/login@v1
 with:
 client-id: ${{ secrets.AZURE_CLIENT_ID }}
 client-secret: ${{ secrets.AZURE_SECRET }}
 tenant-id: ${{ secrets.AZURE_TENANT_ID }}

 - name: Deploy Resources
 run: |
 az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
 az deployment group create \
 --resource-group myResourceGroup \
 --template-file azuredeploy.json \
 --parameters @azuredeploy.parameters.json

Este flujo de trabajo se conecta a Azure y despliega recursos basados en sus plantillas ARM. Puede personalizar los comandos de implementación para adaptarse a sus necesidades específicas de provisión de recursos.

Beneficios del despliegue automatizado

  • Despliegues consistentes y repetibles
  • Faster provision of resources
  • Errores manuales reducidos
  • Mejor colaboración y seguimiento

Implementar tuberías de despliegue automatizadas con GitHub Actions y Azure aumenta significativamente sus prácticas DevOps, asegurando una gestión fiable y eficiente de los recursos en la nube.