Развертывание с использованием инфраструктуры как кода в Azure SRE Agent

Развертывание агента SRE Azure программным способом с помощью шаблонов из репозитория microsoft/sre-agent.

Tip

  • Четыре серверные части развертывания: Bicep, Terraform, PowerShell и Azure Developer CLI
  • Готовые шаблоны для распространенных сценариев (Azure Monitor, PagerDuty, Dynatrace)
  • Одна команда , чтобы перейти от нуля до работающего агента: ./bin/deploy.sh my-agent/
  • Операции второго дня: экспортировать, клонировать, сравнивать и проверять агентов, используя те же инструменты CLI

Обзор

Репозиторий microsoft/sre-agent предоставляет готовые к работе шаблоны IaC для развертывания агента SRE Azure. Используйте следующие шаблоны:

  • Автоматизация развертываний в конвейерах CI/CD
  • Конфигурация агента управления версиями в Git
  • Реплицируйте агентов между средами (от dev к staging и prod)
  • Стандартизация установки с помощью предварительно созданных рецептов

Необходимые условия

инструмент Обязательно для: Install
Azure CLI 2.x+ Все бэкенды Установка
jq Все бэкенды brew install jq или apt install jq
Terraform 1.5+ Только Terraform Установка
PowerShell 7+ Только PowerShell Установка
Azure Developer CLI (Интерфейс командной строки для разработчиков Azure) только azd Установка

Разрешения Azure: Владелец подписки или Участник + Администратор доступа пользователей.

Проверьте предварительные требования:

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

Быстрый старт

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

После развертывания CLI выводит URL-адрес портала и конечную точку плоскости данных:

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

Клонирование существующего агента

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

Экспортирует конфигурацию исходного агента и развертывает его в новую группу имен и ресурсов. Это полезно для репликации между средами.

Рецепты

Готовые шаблоны для типовых сценариев, таких как реагирование на оповещения Azure Monitor, управление инцидентами в PagerDuty и интеграция с Dynatrace. Microsoft регулярно добавляет новые рецепты.

Просмотрите доступные рецепты в репозитории шаблонов.

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

Развертывание серверных компонентов

Шаблоны поддерживают четыре механизма развертывания. Каждый использует один и тот же каталог конфигурации. Выберите тот, который соответствует вашей среде:

Backend Command Используйте, когда
Bicep ./bin/deploy.sh my-agent/ По умолчанию — используется az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Инфраструктура, управляемая Terraform
Powershell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ среды Windows / PowerShell 7
Azure CLI для разработчиков cd my-agent/ && azd up рабочие процессы на основе azd

Все бэкенды поддерживают --what-if / --dry-run для проверки без развертывания. Полный справочник по командам, флаги и требования см. в репозитории README.

Структура каталога конфигурации

При запуске new-agent.shсоздается каталог конфигурации:

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

Измените эти файлы, чтобы настроить агент перед развертыванием.

Что будет развернуто

Развертывание выполняется на двух этапах.

Этап 1. ARM (инфраструктура)

Ресурс Purpose
Группа ресурсов Контейнер для всех ресурсов
Управляемое удостоверение, назначенное пользователем Идентификатор агента Azure
Рабочая область Log Analytics Ведение журнала и диагностика
Application Insights Telemetry
Агент SRE (Microsoft.App/agents) Сам агент
Назначения ролей RBAC Читатель, читатель данных мониторинга, читатель Log Analytics, администратор агента SRE
Соединители, навыки, подагенты, инструменты Конфигурация агента с помощью вложенных ресурсов ARM

Этап 2. Плоскость данных (конфигурация, которую ARM еще не может обрабатывать)

Ресурс Причина плоскости данных
Репозитории кода Требовать проверку подлинности Git (PAT/OAuth)
Хуки Пока недоступно как вложенные ресурсы ARM при развертывании
Триггеры HTTP Сгенерировано на стороне сервера с уникальными URL-адресами
Файлы знаний Отправка двоичного файла
Конфигурации плагинов API только для плоскости данных

Note

Скрипт apply-extras.sh автоматически обрабатывает этап 2 после завершения развертывания Bicep/Terraform. Если маркер плоскости данных недоступен (например, в ограниченной среде CI/CD), он печатает пропущенные данные, чтобы завершить работу с компьютера с доступом.

Ключевые параметры

При создании конфигурации с помощью new-agent.sh --setвведите такие значения, как agentName, resourceGroupи locationtargetRGs. Этот процесс преобразует эти значения в параметры развертывания для Bicep или Terraform.

Полный список параметров, переключателей функций и их значений по умолчанию см. в репозитории README.

Операции второго дня

Шаблоны включают скрипты для текущего управления:

Операции Что делает
Экспорт Создание каталога конфигурации из запущенного агента — полезно для резервного копирования или миграции
Клонировать Экспортируйте исходный агент и разверните его с новым именем и в новой группе ресурсов
Сравнение Сравнение локальной конфигурации с динамическим агентом
Verify Выполните 22-пунктовую проверку для действующего агента (коннекторы, навыки, субагенты, хуки)

Сведения о командах и использовании см. в репозитории README.