Déployer avec l’infrastructure en tant que code dans Agent Azure SRE

Déployez Azure agent SRE par programmation à l’aide de modèles à partir du référentiel microsoft/sre-agent.

Tip

  • Quatre méthodes de déploiement : Bicep, Terraform, PowerShell et Azure Developer CLI
  • Recettes prédéfinies pour les scénarios courants (Azure Monitor, PagerDuty, Dynatrace)
  • Une commande pour passer de zéro à un agent en cours d’exécution : ./bin/deploy.sh my-agent/
  • Opérations de jour 2 : exporter, cloner,diff et vérifier les agents à l’aide des mêmes outils CLI

Overview

Le référentiel microsoft/sre-agent fournit des modèles IaC prêts pour la production pour le déploiement Azure agent SRE. Utilisez ces modèles pour :

  • Automatiser les déploiements dans les pipelines CI/CD
  • Configuration de l’agent de contrôle de version dans Git
  • Répliquer les agents entre les environnements (du développement à la préproduction puis à la production)
  • Normaliser la configuration à l’aide de recettes prédéfinies

Prerequisites

Outil Obligatoire pour Installez
Azure CLI 2.x+ Tous les serveurs principaux Installer
jq Tous les serveurs principaux brew install jq ou apt install jq
Terraform 1.5+ Terraform uniquement Installer
PowerShell 7+ PowerShell uniquement Installer
Azure CLI pour développeurs azd uniquement Installer

Azure autorisations : Propriétaire de l’abonnement ou Contributeur + Administrateur de l’accès utilisateur.

Vérifier les prérequis :

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

Démarrage rapide

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

Après le déploiement, l’interface CLI imprime l’URL du portail et le point de terminaison du plan de données :

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

Cloner un agent existant

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

Exporte la configuration de l’agent source et se déploie sur un nouveau nom et un nouveau groupe de ressources. Cela est utile pour la réplication entre les environnements.

Recettes

Points de départ prédéfinis pour les scénarios courants tels que Azure Monitor réponse aux alertes, la gestion des incidents PagerDuty et l’intégration Dynatrace. Microsoft ajoute régulièrement de nouvelles recettes.

Parcourez les recettes disponibles dans le référentiel de modèles.

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

Déployer des backends

Les modèles prennent en charge quatre back-ends de déploiement. Chacun utilise le même répertoire de configuration : choisissez celui qui correspond à votre environnement :

Back-end Command À utiliser lorsque
Bicep ./bin/deploy.sh my-agent/ Valeur par défaut : utilise az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Infrastructure gérée par Terraform
Powershell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ environnements Windows /PowerShell 7
CLI Azure pour développeurs cd my-agent/ && azd up flux de travail basés sur azd

Tous les backends prennent en charge --what-if / --dry-run pour la validation sans effectuer de déploiement. Pour obtenir une référence complète des commandes, des indicateurs et des exigences, consultez le référentiel README.

Structure de répertoire de configuration

Lorsque vous exécutez new-agent.sh, il génère un répertoire de configuration :

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

Modifiez ces fichiers pour personnaliser votre agent avant le déploiement.

Ce qui est déployé

Le déploiement se produit en deux phases.

Phase 1 : ARM (infrastructure)

Ressource Purpose
Groupe de ressources Conteneur pour toutes les ressources
Identité managée assignée par l'utilisateur Identité Azure de l'agent
Espace de travail Log Analytics Journalisation et diagnostics
Application Insights Telemetry
Agent SRE (Microsoft.App/agents) L’agent lui-même
Attributions de rôles RBAC Lecteur, Lecteur de supervision, Lecteur Log Analytics, Administrateur de l’agent SRE
Connecteurs, compétences, sous-agents, outils Configuration de l’agent via des sous-ressources ARM

Phase 2 : Plan de données (configuration que ARM ne peut pas encore gérer)

Ressource Motif du plan de données
Référentiels de code Exiger l’authentification Git (PAT/OAuth)
Hooks Pas encore exposé en tant que sous-ressources ARM au moment du déploiement
Déclencheurs HTTP Généré côté serveur avec des URL uniques
Fichiers de connaissances Chargement de fichiers binaires
Configurations de plug-in API Data-plane-only

Note

Le script apply-extras.sh gère automatiquement la phase 2 une fois le déploiement Bicep/Terraform terminé. Si le jeton du plan de données n’est pas disponible (par exemple, dans un environnement CI/CD restreint), il affiche ce qui a été ignoré afin que vous puissiez terminer l’opération depuis une machine disposant des accès nécessaires.

Paramètres clés

Lorsque vous générez une configuration à l’aide new-agent.sh --setde , entrez des valeurs telles que agentName, resourceGroup, location, et targetRGs. Le processus traduit ces valeurs en paramètres de déploiement pour Bicep ou Terraform.

Pour obtenir la liste complète des paramètres, les bascules de fonctionnalité et leurs valeurs par défaut, consultez le référentiel README.

Opérations de jour 2

Les modèles incluent des scripts pour la gestion continue :

Opération Qu’est-ce que cela fait ?
Exportation Créer un répertoire de configuration à partir d’un agent en cours d’exécution : utile pour la sauvegarde ou la migration
Cloner Exporter un agent source et déployer sur un nouveau nom et un nouveau groupe de ressources
Diff Comparez votre configuration locale à l’agent actif
Verify Exécuter une vérification en 22 points sur l’agent en direct (connecteurs, compétences, sous-agents, hooks)

Pour connaître les commandes et l’utilisation, consultez le référentiel README.