النشر باستخدام البنية التحتية ككود في Azure SRE Agent

نشر Azure SRE Agent برمجيا باستخدام قوالب من مستودع microsoft/sre-agent.

نصيحة

  • أربعة خلفيات تنشر الخلفية: Bicep، Terraform، PowerShell، وواجهة برمجة Azure Developer
  • وصفات جاهزة للسيناريوهات الشائعة (Azure Monitor، PagerDuty، Dynatrace)
  • أمر واحد للانتقال من الصفر إلى وكيل يعمل: ./bin/deploy.sh my-agent/
  • عمليات اليوم الثاني: التصدير، الاستنساخ، التفاوت، والتحقق من الوكلاء باستخدام نفس أدوات CLI

نظرة عامة

يوفر مستودع microsoft/sre-agent قوالب IaC جاهزة للإنتاج لنشر Azure وكيل SRE. استخدم هذه القوالب ل:

  • أتمتة النشر في خطوط أنابيب CI/CD
  • تكوين وكيل التحكم في الإصدار في Git
  • تكرار الوكلاء عبر البيئات (من المطور إلى المرحلة، إلى الإنتاج)
  • توحيد الإعداد باستخدام وصفات جاهزة

المتطلبات الأساسية

أداة مطلوب من أجل Install
Azure CLI 2.x+ جميع الخلفيات تثبيت
jq جميع الخلفيات brew install jq او apt install jq
تيرافورم 1.5+ التيرافورم فقط تثبيت
باورشل 7+ PowerShell فقط تثبيت
Azure Developer 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/

بعد النشر، يقوم مؤشر القيادة بطباعة عنوان 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/

نشر الخلفيات

تدعم القوالب أربع خلفيات نشر. كل منهما يستخدم نفس دليل الإعدادات - اختر ما يناسب بيئتك:

الخلفية Command استخدم عندما
Bicep ./bin/deploy.sh my-agent/ الافتراضي - الاستخدامات az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ البنية التحتية المدارة بواسطة التيرافورم
بوويرشيل .\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

قم بتعديل هذه الملفات لتخصيص وكيلك قبل النشر.

ما الذي يتم نشره

يتم النشر على مرحلتين.

المرحلة الأولى: البنية التحتية (ARM)

المصدر الغرض
مجموعة الموارد حاوية لجميع الموارد
User-Assigned الهوية المدارة هوية العميل في Azure
مساحة عمل Log Analytics تسجيل الدخول والتشخيص
Application Insights Telemetry
وكيل SRE (Microsoft.App/agents) الوكيل نفسه
تعيينات الأدوار في RBAC قارئ، قارئ مراقبة، قارئ Log Analytics، مسؤول وكيل SRE
الموصلات، المهارات، الوكلاء الفرعيين، الأدوات تكوين الوكيل عبر موارد ARM الفرعية

المرحلة 2: مستوى البيانات (إعداد لا يستطيع ARM التعامل معه بعد)

المصدر سبب وجود مستوى البيانات
مستودعات الشيفرة يتطلب مصادقة Git (PAT/OAuth)
Hooks لم يتم الكشف بعد كموارد فرعية ل ARM عند وقت النشر
مشغلات HTTP تم إنشاء الخادم على جانب الخادم مع عناوين URL فريدة
ملفات المعرفة رفع الملفات الثنائية
تكوينات الإضافات واجهة برمجة التطبيقات لمستوى البيانات فقط

‏‫ملاحظة‬

سكريبت apply-extras.sh يتعامل مع المرحلة الثانية تلقائيا بعد اكتمال نشر Bicep/Terraform. إذا كان رمز مستوى البيانات غير متوفر (على سبيل المثال، في بيئة CI/CD مقيدة)، فإنه يطبع ما تم تخطيه حتى تتمكن من إنهاء المهمة من جهاز لديه وصول.

المعايير الرئيسية

عندما تولد إعدادا باستخدام new-agent.sh --set، أدخل قيما مثل agentName، resourceGroup، locationو targetRGs. تقوم العملية بترجمة هذه القيم إلى معلمات نشر ل Bicep أو Terraform.

للاطلاع على القائمة الكاملة للمعلمات، وتبديلات الميزات، والإعدادات الافتراضية، راجع README المستودع.

عمليات اليوم الثاني

تتضمن القوالب نصوص للإدارة المستمرة:

التشغيل ماذا تفعل
التصدير أنشئ مجلد إعدادات من وكيل يعمل - مفيد للنسخ الاحتياطي أو الترحيل
استنساخ تصدير وكيل مصدر ونشره إلى اسم ومجموعة موارد جديدة
فرق قارن إعدادك المحلي مع الوكيل المباشر
تحقق نفذ فحصا من 22 نقطة ضد الوكيل الحي (الموصلات، المهارات، الوكلاء الفرعيين، الخطاطيف)

للأوامر والاستخدام، راجع README في المستودع.