Implementeren met infrastructuur als code in Azure SRE-agent

Implementeer Azure SRE Agent programmatisch met behulp van sjablonen uit de opslagplaats microsoft/sre-agent.

Tip

  • Vier implementatie-back-ends: Bicep, Terraform, PowerShell en Azure Developer CLI
  • Vooraf gedefinieerde sjablonen voor veelvoorkomende scenario's (Azure Monitor, PagerDuty, Dynatrace)
  • Eén opdracht om van nul naar een actieve agent te gaan: ./bin/deploy.sh my-agent/
  • Dag-2-bewerkingen: agents exporteren, klonen, diffen en verifiëren met behulp van dezelfde CLI-hulpprogramma's

Overview

De opslagplaats microsoft/sre-agent biedt IaC-sjablonen die gereed zijn voor productie voor het implementeren van Azure SRE-agent. Gebruik deze sjablonen om:

  • Implementaties automatiseren in CI/CD-pijplijnen
  • Configuratie van agent voor versiebeheer in Git
  • Agents repliceren tussen omgevingen (van dev naar staging naar prod)
  • Setup standaardiseren met behulp van vooraf gedefinieerde recepten

Prerequisites

Tool Vereist voor Install
Azure CLI 2.x+ Alle backends Installeren
jq Alle backends brew install jq of apt install jq
Terraform 1.5+ Alleen Terraform Installeren
PowerShell 7+ Alleen PowerShell Installeren
Azure Developer CLI (Command Line Interface voor ontwikkelaars in Azure) alleen azd Installeren

Azure machtigingen: Eigenaar van het abonnement of Inzender + Beheerder voor gebruikerstoegang.

Vereisten controleren:

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

Snel starten

# 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/

Na de implementatie drukt de CLI de portal-URL en het eindpunt van het gegevensvlak af:

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

Een bestaande agent klonen

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

Hiermee exporteert u de configuratie van de bronagent en implementeert u deze naar een nieuwe naam en resourcegroep. Dit is nuttig om in verschillende omgevingen te repliceren.

Recepten

Vooraf gedefinieerde uitgangspunten voor veelvoorkomende scenario's zoals Azure Monitor waarschuwingsreactie, PagerDuty-incidentbeheer en Dynatrace-integratie. Microsoft voegt regelmatig nieuwe recepten toe.

Blader door beschikbare recepten in de opslagplaats met sjablonen.

# 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/

Back-ends implementeren

De sjablonen ondersteunen vier implementatieback-ends. Elke map gebruikt dezelfde configuratiemap: kies de map die bij uw omgeving past:

Backend Command Gebruik wanneer
Bicep ./bin/deploy.sh my-agent/ Standaard : gebruikt az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Door Terraform beheerde infrastructuur
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ Windows/PowerShell 7-omgevingen
AZURE Developer CLI cd my-agent/ && azd up op azd gebaseerde werkstromen

Alle backends ondersteunen --what-if / --dry-run voor validatie zonder uitrol. Zie de README van de repository voor een volledige naslag van opdrachten, opties en vereisten.

Structuur van de configmap

Wanneer u new-agent.sh uitvoert, wordt er een configuratiemap aangemaakt:

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

Bewerk deze bestanden om uw agent aan te passen voordat u deze implementeert.

Wat wordt geïmplementeerd

Implementatie vindt plaats in twee fasen.

Fase 1: ARM (infrastructuur)

Hulpbron Purpose
Resourcegroep Container voor alle bronnen
User-Assigned Beheerde Identiteit De Azure-identiteit van de agent
Log Analytics-werkruimte Logboekregistratie en diagnostische gegevens
Application Insights Telemetrie
SRE-agent (Microsoft.App/agents) De agent zelf
RBAC-roltoewijzingen Lezer, Bewakingslezer, Log Analytics Reader, SRE-agentbeheerder
Connectoren, vaardigheden, subagenten, hulpmiddelen Agentconfiguratie via ARM-subbronnen

Fase 2: Gegevensvlak (configuratie die ARM nog niet kan verwerken)

Hulpbron Reden voor data plane
Codeopslagplaatsen Git-verificatie vereisen (PAT/OAuth)
Haken Nog niet weergegeven als ARM-subbronnen tijdens de implementatie
HTTP-triggers Gegenereerde serverzijde met unieke URL's
Kennisbestanden Binair bestand uploaden
Invoegtoepassingsconfiguraties Api voor alleen gegevensvlak

Note

Het script apply-extras.sh verwerkt fase 2 automatisch nadat de Bicep/Terraform-implementatie is voltooid. Als het token voor het gegevensvlak niet beschikbaar is (bijvoorbeeld in een beperkte CI/CD-omgeving), wordt afgedrukt wat is overgeslagen, zodat u het kunt voltooien vanaf een computer met toegang.

Sleutelparameters

Wanneer u een configuratie genereert met behulp van new-agent.sh --set, voert u waarden zoals agentName, resourceGroup, locationen targetRGs. Het proces vertaalt deze waarden in implementatieparameters voor Bicep of Terraform.

Zie de README van de repository voor de volledige lijst met parameters, featuretoggles en hun standaardwaarden.

Dag 2-activiteiten

De sjablonen bevatten scripts voor doorlopend beheer:

Operatie Wat het doet
Export Een configuratiemap maken van een actieve agent, handig voor back-up of migratie
Kloon Een bronagent exporteren en implementeren in een nieuwe naam en resourcegroep
Diff Uw lokale configuratie vergelijken met de liveagent
Verify Voer een 22-puntencontrole uit bij de live agent (connectors, vaardigheden, subagenten, hooks)

Zie de README-opslagplaats voor opdrachten en gebruik.