توزيع قوالب ARM باستخدام إجراءات GitHub

إجراءات GitHub عبارة عن مجموعة من الميزات في GitHub للتنفيذ التلقائي لعمليات سير عمل تطوير البرامج في نفس المكان الذي تخزن فيه التعليمات البرمجية وتتعاون في طلبات السحب والمشكلات.

استخدم توزيع إجراء قالب Azure Resource Manager لأتمتة نشر قالب Azure Resource Manager (قالب ARM) إلى Azure.

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

نظرة عامة على ملف سير العمل

يتم تحديد سير العمل بواسطة ملف YAML (.yml) في المسار /.github/workflows/ بمستودعك. ويتضمن هذا التعريف الخطوات والمعلمات المختلفة التي تشكّل سير العمل.

يتكون الملف من قسمين:

القسم المهام
المصادقة 1. تعيين بيانات اعتماد التوزيع.
نشر 1. توزيع قالب إدارة الموارد.

تعيين بيانات اعتماد النشر

لاستخدام إجراء تسجيل الدخول إلى Azure مع OIDC، تحتاج إلى تكوين بيانات اعتماد هوية موحدة على تطبيق Microsoft Entra أو هوية مدارة يعينها المستخدم.

الخيار 1: تطبيق Microsoft Entra

الخيار 2: الهوية المدارة المعينة من قبل المستخدم

تكوين بيانات GitHub السرية

تحتاج إلى توفير معرف العميل الخاص بالتطبيق ومعرف الدليل (المستأجر) ومعرف الاشتراك لإجراء تسجيل الدخول. يمكن توفير هذه القيم إما مباشرة في سير العمل أو يمكن تخزينها في أسرار GitHub والإشارة إليها في سير العمل خاصتك. حفظ القيم على أنها أسرار GitHub هو الخيار الأكثر أمانًا.

  1. في GitHub، انتقل إلى المستودع الخاص بك.

  2. حدد Security > Secrets and variables > Actions.

    لقطة شاشة لإضافة بيانات سرية

  3. حدد سر مستودع جديد.

    إشعار

    لتحسين أمان سير العمل في المستودعات العامة، استخدم أسرار البيئة بدلا من أسرار المستودع. إذا كانت البيئة تتطلب الموافقة، فلا يمكن للوظيفة الوصول إلى أسرار البيئة حتى يوافق عليها أحد المراجعين المطلوبين.

  4. إنشاء أسرار لـ 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.

  1. من مستودع GitHub، حدد الإجراءات من القائمة العلوية.
  2. حدد سير عمل جديد.
  3. حدد Set up your workflow yourself.
  4. إعادة تسمية ملف سير العمل إذا كنت تفضل اسم مختلف غير main.yml. على سبيل المثال: deployStorageAccount.yml.
  5. استبدل محتوى ملف 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 التي تؤدي إلى سير العمل. يتم تشغيل سير العمل عند وجود حدث دفع على الفرع الرئيسي، والذي يعدل ملفا واحدا على الأقل من الملفين المحددين. الملفان ملف سير العمل والملف المؤقت.
  1. حدد "Start commit".
  2. حدد التنفيذ مباشرة بالفرع الرئيسي.
  3. حدد تنفيذ ملف جديد (أو تنفيذ التغييرات).

نظرَا لأنه يتم تكوين سير العمل ليتم تشغيله بواسطة ملف سير العمل أو ملف قالب قيد التحديث، يبدأ سير العمل مباشرة بعد تنفيذ التغييرات.

التحقق من حالة سير العمل

  1. حدد علامة التبويب Actions. ترى إنشاء سير عمل deployStorageAccount.yml مدرجا. يستغرق 1-2 دقيقة لتشغيل سير العمل.
  2. حدد سير العمل لفتحه.
  3. حدد تشغيل نشر ARM من القائمة للتحقق من النشر.

تنظيف الموارد

عندما لا تكون هناك حاجة إلى مجموعة الموارد والمستودعات، قم بتنظيف الموارد التي قمت بنشرها عن طريق حذف مجموعة الموارد ومستودع GitHub.

الخطوات التالية