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

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

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

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

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

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

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

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

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

أنشئ كيان خدمة باستخدام الأمر az ad sp create-for-rbac في Azure CLI. قم بتشغيل هذا الأمر باستخدام «Azure Cloud Shell» في مدخل Azure أو عن طريق تحديد زر «Try it» .

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

المعلمة --json-auth متوفرة في إصدارات >Azure CLI = 2.51.0. الإصدارات السابقة لهذا الاستخدام --sdk-auth مع تحذير إيقاف.

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

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

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

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

  2. انتقل إلى الإعدادات في قائمة التنقل.

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

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

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

  5. الصق ناتج JSON بالكامل من أمر واجهة سطر الأوامر Azure في حقل قيمة بيانات الدخول السرية. امنح اسماً للبيانات السريةAZURE_CREDENTIALS.

  6. حدد ⁧⁩Add secret⁧⁩.

إضافة قالب إدارة الموارد

أضف قالب إدارة الموارد إلى مستودع 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. حدد علامة تبويب الإجراءات. سترى سير عمل إنشاء deployStorageAccount.yml مسرودًا. يستغرق 1-2 دقيقة لتشغيل سير العمل.
  2. حدد سير العمل لفتحه.
  3. حدد تشغيل نشر ARM من القائمة للتحقق من النشر.

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

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

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