2025-01-26 16:31:34
Creanmé que esto les ahorrará horas de trabajo manual, de crear esos YAML infinitos y más.
Vamos paso a paso a través de las tareas que realicé en Azure.
Vamos a aprender cómo automatizar la eliminación de recursos con un pipeline, trabajar con bases de datos SQL y crear una Web App.
Pero antes de eso, quiero hablar sobre cómo Azure DevOps y ChatGPT pueden ser aliados estratégicos en este tipo de tareas.
Automatizar procesos en Azure usando Azure DevOps no solo ahorra tiempo, sino que también reduce errores y permite que el equipo se enfoque en tareas más estratégicas. Por otro lado, ChatGPT complementa este flujo al facilitar la generación de ideas, creación de scripts y solución de problemas en tiempo real.
git push
), puedes desencadenar procesos completos, desde eliminar recursos hasta crear nuevas instancias en Azure.ChatGPT se convierte en un asistente virtual técnico al:
En conjunto, Azure DevOps automatiza tareas complejas, y ChatGPT acelera la creación y resolución de problemas.
Primero, vamos a crear un pipeline en Azure DevOps que elimine recursos automáticamente de un grupo de recursos. Esto nos ayudará a mantener nuestro entorno limpio y organizado. Aquí está el plan:
Vamos a usar YAML para definir el pipeline. Este es el archivo que necesitamos crear:
trigger:
- main # Se ejecutará cuando hagamos un cambio en la rama principal
pool:
name: Default # Usaremos un agente autoalojado
demands:
- Agent.Name -equals DESKTOP-8AR4A2T # Especificamos el agente
steps:
- task: AzureCLI@2
displayName: 'Eliminar recursos del grupo de recursos'
inputs:
azureSubscription: 'tu-rg-va-aca' # Conexión de servicio
scriptType: ps
scriptLocation: inlineScript
inlineScript: |
# Variables
$RESOURCE_GROUP = "tu-rg-group"
# Comprobar si el grupo de recursos existe
$resourceGroupExists = az group exists --name $RESOURCE_GROUP
if ($resourceGroupExists -eq "true") {
Write-Host "Eliminando recursos del grupo de recursos: $RESOURCE_GROUP"
# Eliminar el grupo de recursos
az group delete --name $RESOURCE_GROUP --yes --no-wait
Write-Host "¡El grupo de recursos ha sido eliminado exitosamente!"
} else {
Write-Host "El grupo de recursos $RESOURCE_GROUP no existe."
}
Paso 2: Desplegar el Pipeline:
¿Como lo haremos?
Ahora que nuestro pipeline está listo, vamos a trabajar con bases de datos SQL desde el Query Editor en Azure. Imaginemos que tenemos una tabla llamada Users
y queremos insertar algunos datos.
Primero, verificamos si nuestra tabla existe. Si no, la creamos con esta consulta:
CREATE TABLE Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(50) NOT NULL,
Email NVARCHAR(50) NOT NULL,
CreatedDate DATETIME NOT NULL
);
Ahora vamos a llenar la tabla con información. Ejecutamos esta consulta:
INSERT INTO Users (Name, Email, CreatedDate)
VALUES
('Antonio Perez', 'antonio.perez@example.com', GETDATE()),
('Maria Lopez', 'maria.lopez@example.com', GETDATE()),
('Carlos Gomez', 'carlos.gomez@example.com', GETDATE());
Por último, vamos a crear una Web App utilizando Azure CLI. Esto es útil para desplegar aplicaciones rápidamente.
Usaremos estas variables para personalizar la Web App:
demo-rg
S2
appwebtuyaacaconnombre
centralus
Abrimos Azure CLI y ejecutamos este script:
# Crear el grupo de recursos (si no existe)
az group create --name demo-rg --location centralus
# Crear un App Service Plan
az appservice plan create --name AppServicePlan2025 --resource-group demo-rg --sku S2 --location centralus
# Crear la Web App
az webapp create --name tuwebappxx --resource-group demo-rg --plan tu-service-plan
Hoy logramos automatizar tareas clave, gestionar datos y desplegar aplicaciones, pero lo más importante fue cómo integramos herramientas para hacer el proceso más eficiente.
La integración de herramientas no solo nos facilita el trabajo, sino que nos impulsa a pensar en cómo podemos optimizar más procesos en el futuro. Hoy aprendimos que automatizar, gestionar y desplegar no son tareas aisladas, sino partes de un ecosistema que, si se configura correctamente, puede lograr resultados impresionantes con el mínimo esfuerzo manual.
Así que mi consejo es: exploren, prueben y automatícenlo todo. Y si tienen dudas, siempre pueden apoyarse en herramientas como ChatGPT o Azure DevOps para avanzar más rápido.
Anexo los pipelines:
create-sql.yaml
trigger:
- main # Trigger for my main branch
pool:
name: Default # Pool agent self-hosted
steps:
- task: AzureCLI@2
displayName: 'Desplegar base de datos SQL'
inputs:
azureSubscription: 'tu-rg-va-aca' # My service conection
scriptType: ps # PowerShell
scriptLocation: inlineScript
inlineScript: |
# Variables
$RESOURCE_GROUP = "demo-rg"
$LOCATION = "centralus"
$SQL_SERVER_NAME = "tuservername"
$ADMIN_USER = "tuadminloco"
$ADMIN_PASSWORD = "MEgaPAssQeodqword!"
$DATABASE_NAME = "myDatabase"
Write-Output "Creando el grupo de recursos..."
az group create --name $RESOURCE_GROUP --location $LOCATION
Write-Output "Creando el servidor SQL..."
az sql server create `
--name $SQL_SERVER_NAME `
--resource-group $RESOURCE_GROUP `
--location $LOCATION `
--admin-user $ADMIN_USER `
--admin-password $ADMIN_PASSWORD
Write-Output "Configurando reglas de firewall para permitir acceso..."
az sql server firewall-rule create `
--resource-group $RESOURCE_GROUP `
--server $SQL_SERVER_NAME `
--name AllowMyIP `
--start-ip-address 0.0.0.0 `
--end-ip-address 255.255.255.255
Write-Output "Creando la base de datos SQL..."
az sql db create `
--resource-group $RESOURCE_GROUP `
--server $SQL_SERVER_NAME `
--name $DATABASE_NAME `
--service-objective S0
Write-Output "Despliegue completado exitosamente."