Implementación con infraestructura como código en Azure SRE Agent

Implemente Azure agente de SRE mediante programación mediante plantillas del repositorio microsoft/sre-agent.

Tip

  • Cuatro backends de implementación: Bicep, Terraform, PowerShell y la CLI para desarrolladores de Azure
  • Recetas precompiladas para escenarios comunes (Azure Monitor, PagerDuty, Dynatrace)
  • Un comando para ir de cero a un agente en ejecución: ./bin/deploy.sh my-agent/
  • Operaciones del día 2: exportar, clonar, comparar y verificar agentes con las mismas herramientas de la CLI

Overview

El repositorio microsoft/sre-agent proporciona plantillas iaC listas para producción para implementar Azure agente SRE. Use estas plantillas para:

  • Automatización de implementaciones en canalizaciones de CI/CD
  • Configuración del agente de control de versiones en Git
  • Replicación de agentes entre entornos (de desarrollo a preproducción y a producción)
  • Estandarizar la configuración mediante recetas precompiladas

Prerequisites

Herramienta Se requiere para Install
CLI de Azure 2.x+ Todos los back-ends Install
jq Todos los back-ends brew install jq o apt install jq
Terraform 1.5+ Solo Terraform Install
PowerShell 7+ Únicamente PowerShell Install
CLI para desarrolladores de Azure Solo azd Install

Permisos de Azure: Propietario de la suscripción o Colaborador + Administrador de acceso de usuario.

Verificación de los requisitos previos:

git clone https://github.com/microsoft/sre-agent.git
cd sre-agent/sreagent-templates
bash bin/check-prerequisites.sh

Inicio rápido

# 1. Generate config from a recipe
./bin/new-agent.sh --recipe azmon-lawappinsights --non-interactive \
  --set agentName=my-agent \
  --set resourceGroup=rg-my-agent \
  --set location=eastus2 \
  --set targetRGs=rg-my-workload \
  -o my-agent/

# 2. Deploy (~3 minutes)
./bin/deploy.sh my-agent/

Después de la implementación, la CLI imprime la dirección URL del portal y el punto de conexión del plano de datos:

Agent (portal):  https://sre.azure.com/#/agent/{sub}/{rg}/my-agent
Data plane:      https://my-agent.eastus2.azuresre.ai

Clonación de un agente existente

./bin/clone-agent.sh \
  --from-agent prod-agent --from-rg rg-prod \
  --set agentName=staging-agent --set resourceGroup=rg-staging \
  -o staging-agent/

Exporta la configuración del agente de origen e implementa en un nuevo nombre y grupo de recursos. Esto es útil para replicar entre entornos.

Recetas

Puntos de partida creados previamente para escenarios comunes, como Azure Monitor respuesta a alertas, administración de incidentes pagerDuty e integración de Dynatrace. Microsoft agrega regularmente nuevas recetas.

Examine las recetas disponibles en el repositorio de plantillas.

# List available recipes
ls recipes/

# Generate config from a recipe
./bin/new-agent.sh --recipe azmon-lawappinsights \
  --set agentName=prod-agent \
  --set resourceGroup=rg-prod-agent \
  --set location=swedencentral \
  -o prod-agent/

Implementación de back-ends

Las plantillas admiten cuatro back-end de implementación. Cada uno usa el mismo directorio de configuración: elija el que se adapte a su entorno:

Backend Command Se utiliza cuando
Bicep ./bin/deploy.sh my-agent/ Valor predeterminado: usa az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Infraestructura administrada por Terraform
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ entornos de Windows/PowerShell 7
CLI para desarrolladores de Azure cd my-agent/ && azd up flujos de trabajo basados en azd

Todos los backends admiten --what-if / --dry-run para la validación sin desplegar. Para consultar la referencia completa de comandos, opciones y requisitos, consulte el README del repositorio.

Estructura de directorios de configuración

Al ejecutar new-agent.sh, genera un directorio de configuración:

my-agent/
├── agent.json              # Agent identity, model, settings
├── connectors.json         # Data sources (App Insights, Log Analytics, MCP endpoints)
├── connectors.secrets.env  # Secrets — auto-gitignored
├── roles.yaml              # RBAC role assignments
├── config/
│   ├── skills/             # Skill instructions (YAML + markdown)
│   ├── subagents/          # Subagent definitions (YAML + markdown instructions)
│   ├── hooks/              # Safety guardrails (YAML)
│   ├── common-prompts/     # Shared prompt instructions
│   └── repos/              # Code repository connections
├── automations/
│   ├── scheduled-tasks/    # Recurring automated tasks
│   ├── incident-filters/   # Incident routing rules
│   └── incident-platforms/  # Incident platform connections
└── data/
    ├── knowledge/          # Upload docs, runbooks, reference material
    └── synthesized-knowledge/ # Agent's learned context

Edite estos archivos para personalizar el agente antes de la implementación.

¿Qué se implementa?

La implementación se produce en dos fases.

Fase 1: ARM (infraestructura)

Recurso propósito
Grupo de recursos Contenedor para todos los recursos
Identidad Administrada Asignada por el Usuario Identidad de Azure del agente
Área de trabajo de Log Analytics Registro y diagnóstico
Application Insights Telemetry
Agente de SRE (Microsoft.App/agents) El propio agente
Asignaciones de roles RBAC Lector, Lector de supervisión, Lector de Log Analytics, Administrador de SRE Agent
Conectores, habilidades, subagentes, herramientas Configuración del agente mediante subrecursos de ARM

Fase 2: Plano de datos (configuración que ARM aún no puede controlar)

Recurso Motivo del plano de datos
Repositorios de código Requerir autenticación de Git (PAT/OAuth)
Hooks Aún no se exponen como subrecursos de ARM en el momento de la implementación
Desencadenadores HTTP Generado del lado del servidor con URL únicas
Archivos de conocimiento Carga de archivos binarios
Configuraciones de complementos API de solo plano de datos

Note

El script apply-extras.sh controla automáticamente la fase 2 después de que se complete la implementación de Bicep/Terraform. Si el token de plano de datos no está disponible (por ejemplo, en un entorno de CI/CD restringido), imprime lo que se ha omitido para que pueda finalizar desde una máquina con acceso.

Parámetros clave

Al generar una configuración mediante new-agent.sh --set, escriba valores como agentName, resourceGroup, locationy targetRGs. El proceso convierte estos valores en parámetros de implementación para Bicep o Terraform.

Para consultar la lista completa de parámetros, interruptores de funciones y sus valores predeterminados, consulte el README del repositorio.

Operaciones del día 2

Las plantillas incluyen scripts para la administración en curso:

Operación Qué hace
Exportación Creación de un directorio de configuración a partir de un agente en ejecución: útil para la copia de seguridad o la migración
Clonar Exportación de un agente de origen e implementación en un nuevo nombre y grupo de recursos
Diff Comparación de la configuración local con el agente activo
Verificar Realice una comprobación de 22 puntos con el agente activo (conectores, capacidades, subagentes, enlaces)

Para consultar los comandos y su uso, consulte el README del repositorio.