إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إجراءات GitHub عبارة عن مجموعة من الميزات في GitHub للتنفيذ التلقائي لعمليات سير عمل تطوير البرامج في نفس المكان الذي تخزن فيه التعليمات البرمجية وتتعاون في طلبات السحب والمشكلات.
استخدم توزيع إجراء قالب Azure Resource Manager لأتمتة نشر قالب Azure Resource Manager (قالب ARM) إلى Azure.
المتطلبات الأساسية
حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
حساب GitHub. في حالة عدم امتلاك حساب، يمكنك التسجيل مجاناً.
- يُستخدم مستودع GitHub لتخزين قوالب Resource Manager وملفات سير العمل لديك. لإنشاء مستودع، راجع إنشاء مستودع جديد.
نظرة عامة على ملف سير العمل
يتم تحديد سير العمل بواسطة ملف YAML (.yml) في المسار /.github/workflows/ بمستودعك. ويتضمن هذا التعريف الخطوات والمعلمات المختلفة التي تشكّل سير العمل.
يتكون الملف من قسمين:
| القسم | المهام |
|---|---|
| المصادقة | 1. تعيين بيانات اعتماد التوزيع. |
| نشر | 1. توزيع قالب إدارة الموارد. |
تعيين بيانات اعتماد النشر
لاستخدام إجراء تسجيل الدخول إلى Azure مع OIDC، تحتاج إلى تكوين بيانات اعتماد هوية موحدة على تطبيق Microsoft Entra أو هوية مدارة يعينها المستخدم.
الخيار 1: تطبيق Microsoft Entra
- إنشاء تطبيق Microsoft Entra مع كيان خدمة بواسطة مدخل Azure أو Azure CLI أو Azure PowerShell.
- انسخ قيم معرف العميل ومعرف الاشتراك ومعرف الدليل (المستأجر) لاستخدامها لاحقا في سير عمل إجراءات GitHub.
- تعيين دور مناسب لكيان الخدمة الخاص بك بواسطة مدخل Azure أو Azure CLI أو Azure PowerShell.
- تكوين بيانات اعتماد هوية موحدة على تطبيق Microsoft Entra للثقة في الرموز المميزة الصادرة عن GitHub Actions إلى مستودع GitHub الخاص بك.
الخيار 2: الهوية المدارة المعينة من قبل المستخدم
- إنشاء هوية مدارة يعينها المستخدم.
- انسخ قيم معرف العميل ومعرف الاشتراك ومعرف الدليل (المستأجر) لاستخدامها لاحقا في سير عمل إجراءات GitHub.
- تعيين دور مناسب للهوية المدارة المعينة من قبل المستخدم.
- تكوين بيانات اعتماد هوية موحدة على هوية مدارة يعينها المستخدم للثقة في الرموز المميزة الصادرة عن GitHub Actions إلى مستودع GitHub الخاص بك.
تكوين بيانات GitHub السرية
تحتاج إلى توفير معرف العميل الخاص بالتطبيق ومعرف الدليل (المستأجر) ومعرف الاشتراك لإجراء تسجيل الدخول. يمكن توفير هذه القيم إما مباشرة في سير العمل أو يمكن تخزينها في أسرار GitHub والإشارة إليها في سير العمل خاصتك. حفظ القيم على أنها أسرار GitHub هو الخيار الأكثر أمانًا.
في GitHub، انتقل إلى المستودع الخاص بك.
حدد Security > Secrets and variables > Actions.
حدد سر مستودع جديد.
إشعار
لتحسين أمان سير العمل في المستودعات العامة، استخدم أسرار البيئة بدلا من أسرار المستودع. إذا كانت البيئة تتطلب الموافقة، فلا يمكن للوظيفة الوصول إلى أسرار البيئة حتى يوافق عليها أحد المراجعين المطلوبين.
إنشاء أسرار لـ
AZURE_CLIENT_ID,AZURE_TENANT_ID, وAZURE_SUBSCRIPTION_ID. انسخ هذه القيم من تطبيق Microsoft Entra أو الهوية المدارة المعينة من قبل المستخدم لبيانات GitHub السرية:سر GitHub تطبيق Microsoft Entra أو الهوية المدارة المعينة من قبل المستخدم AZURE_CLIENT_ID معرف العميل AZURE_SUBSCRIPTION_ID مُعرّف الاشتراك AZURE_TENANT_ID معرف الدليل (المستأجر) إشعار
لأسباب أمنية، نوصي باستخدام GitHub Secrets بدلا من تمرير القيم مباشرة إلى سير العمل.
إضافة قالب إدارة الموارد
أضف قالب إدارة الموارد إلى مستودع GitHub. يُنشئ هذا القالب حساب تخزين.
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
يمكنك وضع الملف في أي مكان في المستودع. يفترض نموذج سير العمل في القسم التالي أن ملف القالب يسمى azuredeploy.json، ويتم تخزينه في جذر المستودع الخاص بك.
إنشاء سير عمل
يجب تخزين ملف سير العمل في مجلد github/workflows في جذر مستودعك. يمكن أن يكون ملحق ملف سير العمل إما .yml أو .yaml.
- من مستودع GitHub، حدد الإجراءات من القائمة العلوية.
- حدد سير عمل جديد.
- حدد Set up your workflow yourself.
- إعادة تسمية ملف سير العمل إذا كنت تفضل اسم مختلف غير main.yml. على سبيل المثال: deployStorageAccount.yml.
- استبدل محتوى ملف yml بما يلي:
on: [push]
name: Azure ARM
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
# Checkout code
- uses: actions/checkout@main
# Log into Azure
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
# Deploy ARM template
- name: Run ARM deploy
uses: azure/arm-deploy@v1
with:
subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }}
resourceGroupName: ${{ secrets.AZURE_RG }}
template: ./azuredeploy.json
parameters: storageAccountType=Standard_LRS
# output containerName variable from template
- run: echo ${{ steps.deploy.outputs.containerName }}
إشعار
يمكنك تحديد ملف معلمات تنسيق JSON بدلا من ذلك في الإجراء نشر ARM (مثال: .azuredeploy.parameters.json).
يتضمن المقطع الأول من ملف سير العمل:
- الاسم: اسم الجهاز الظاهري في Azure.
- تشغيل: اسم الأحداث GitHub التي تؤدي إلى سير العمل. يتم تشغيل سير العمل عند وجود حدث دفع على الفرع الرئيسي، والذي يعدل ملفا واحدا على الأقل من الملفين المحددين. الملفان ملف سير العمل والملف المؤقت.
- حدد "Start commit".
- حدد التنفيذ مباشرة بالفرع الرئيسي.
- حدد تنفيذ ملف جديد (أو تنفيذ التغييرات).
نظرَا لأنه يتم تكوين سير العمل ليتم تشغيله بواسطة ملف سير العمل أو ملف قالب قيد التحديث، يبدأ سير العمل مباشرة بعد تنفيذ التغييرات.
التحقق من حالة سير العمل
- حدد علامة التبويب Actions. ترى إنشاء سير عمل deployStorageAccount.yml مدرجا. يستغرق 1-2 دقيقة لتشغيل سير العمل.
- حدد سير العمل لفتحه.
- حدد تشغيل نشر ARM من القائمة للتحقق من النشر.
تنظيف الموارد
عندما لا تكون هناك حاجة إلى مجموعة الموارد والمستودعات، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد ومستودع GitHub.