microsoft/sre-agent 리포지토리의 템플릿을 사용하여 프로그래밍 방식으로 Azure SRE 에이전트를 배포합니다.
Tip
- 4가지 배포 백엔드: Bicep, Terraform, PowerShell 및 Azure Developer CLI
- 사전 구축된 레시피 일반적인 시나리오용(Azure Monitor, PagerDuty, Dynatrace)
- 0에서 실행 중인 에이전트로 이동하는 하나의 명령:
./bin/deploy.sh my-agent/ - 2일차 작업: 동일한 CLI 도구를 사용하여 에이전트 내보내기, 복제, 차이 및 확인
개요
microsoft/sre-agent 리포지토리는 Azure SRE 에이전트를 배포하기 위한 프로덕션 준비 IaC 템플릿을 제공합니다. 다음 템플릿을 사용하여 다음을 수행합니다.
- CI/CD 파이프라인에서 배포 자동화
- Git의 버전 관리 에이전트 구성
- 복제하여 에이전트를 환경 간에 배포(개발에서 스테이징, 프로덕션으로)
- 미리 빌드된 레시피를 사용하여 설정 표준화
사전 요구 사항
| Tool | 필수 | Install |
|---|---|---|
| Azure CLI 2.x+ | 모든 백엔드 | 설치 |
| jq | 모든 백엔드 |
brew install jq 또는 apt install jq |
| Terraform 1.5 이상 | Terraform만 | 설치 |
| PowerShell 7 이상 | PowerShell만 | 설치 |
| Azure 개발자 명령줄 인터페이스 (CLI) | 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/
백엔드 배포
템플릿은 4개의 배포 백 엔드를 지원합니다. 각각 동일한 구성 디렉터리를 사용합니다. 환경에 맞는 구성 디렉터리를 선택합니다.
| 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(인프라)
| Resource | 용도 |
|---|---|
| 리소스 그룹 | 모든 리소스에 대한 컨테이너 |
| 사용자가 할당한 관리 ID | 에이전트의 Azure ID |
| Log Analytics 작업 영역 | 로깅 및 진단 |
| Application Insights | Telemetry |
SRE 에이전트(Microsoft.App/agents) |
에이전트 자체 |
| RBAC 역할 할당 | 읽기 권한자, 모니터링 읽기 권한자, 로그 분석 읽기 권한자, SRE Agent 관리자 |
| 커넥터, 기술, 스바젠트, 도구 | ARM 하위 리소스를 통한 에이전트 구성 |
2단계: 데이터 평면(ARM에서 아직 처리할 수 없는 구성)
| Resource | 데이터 평면에 대한 이유 |
|---|---|
| 코드 리포지토리 | Git 인증 필요(PAT/OAuth) |
| 후크 | 아직 배포 시 ARM 하위 리소스로 노출되지 않음 |
| HTTP 트리거 | 고유한 URL을 사용해 서버 측에서 생성됨 |
| 지식 파일 | 이진 파일 업로드 |
| 플러그 인 구성 | 데이터 플레인 전용 API |
참고
apply-extras.sh 스크립트는 Bicep/Terraform 배포가 완료된 후 자동으로 2단계를 처리합니다. 데이터 평면 토큰을 사용할 수 없는 경우(예: 제한된 CI/CD 환경에서) 건너뛴 항목을 인쇄하므로 액세스 권한이 있는 컴퓨터에서 완료할 수 있습니다.
키 매개 변수
new-agent.sh --set를 사용하여 구성을 생성할 때 agentName, resourceGroup, location, targetRGs와 같은 값을 입력합니다. 이 프로세스는 이러한 값을 Bicep 또는 Terraform에 대한 배포 매개 변수로 변환합니다.
매개 변수, 기능 토글 및 해당 기본값의 전체 목록은 리포지토리 추가 정보(README)를 참조하세요.
2일차 작업
템플릿에는 지속적인 관리를 위한 스크립트가 포함됩니다.
| 작업 | 용도 |
|---|---|
| 내보내기 | 실행 중인 에이전트에서 구성 디렉터리 만들기 - 백업 또는 마이그레이션에 유용 |
| 클론 | 원본 에이전트 내보내기 및 새 이름 및 리소스 그룹에 배포 |
| Diff | 라이브 에이전트와 로컬 구성 비교 |
| Verify | 라이브 에이전트를 대상으로 커넥터, 스킬, 하위 에이전트, 후크에 대한 22개 항목 검사를 실행합니다. |
명령 및 사용법은 리포지토리 추가 정보(README)를 참조하세요.