تطبيق سير مؤتمت

مكتمل

في هذه الوحدة، ستتعرف على أدوات سير العمل المؤتمتة وكيفية دمجها مع Terraform وAzure.

حول إجراءات GitHub

بصفتك مدير البنية الأساسية، كنت بحاجة إلى أن تكوِّن مسارات عمل الإنشاء والتوزيع لاستخدام نفس عنصر التحكم بالإصدار الخاص بالمشروع.

باستخدام إجراءات "GitHub Actions"، يمكنك تشغيل عملية التكامل المستمر والنشر المستمر (CI/CD) التي ترتبط بمستودعات GitHub.

من خلال إجراءات "GitHub Actions"، يمكنك إنشاء التعليمات البرمجية الخاصة بك مباشرة من موقع GitHub واختبارها وتوزيعها. ويمكنك أيضًا تعيين عمليات استعراض التعليمات البرمجية وإدارة الفروع وفرز المشكلات.

مكونات إجراءات "GitHub Actions"

لنبدأ في فهم مختلف مكونات إجراءات "GitHub Actions"، كما هو موضح في الرسم التخطيطي التالي:

رسم تخطيطي يوضح علاقة مسارات عمل إجراءات

  • سير العمل: يتم تشغيله بواسطة أحداث أو أنشطة معينة، سير العمل هو مجموعة من الوظائف والخطوات التي تعمل على أتمتة مهام دورة حياة تطوير البرامج.
  • الوظيفة: مجموعة من الخطوات التي تنفذ على مشغل.
  • الخطوة: مهمة يمكنها تشغيل أمر أو إجراء واحد أو أكثر. وتتكون كل خطوة من إجراءات فردية يتم تشغيلها بعد حدث معين، مثل طلب سحب.
  • الإجراء: الأوامر المستقلة التي يمكن دمجها في خطوات. ويمكن دمج عدة خطوات لإنشاء وظيفة. بينما تمثل الإجراءات الفردية البرامج النصية المعبأة التي تعمل على أتمتة مهام تطوير البرامج. لإنشاء سير عمل، يمكنك إضافة إجراءات إلى ملف YAML في دليل .github/workflows في مستودع GitHub الخاص بك.

إدارة إجراء GitHub من خلال أداة Terraform

hashicorp/setup-terraform يقوم الإجراء بإعداد Terraform CLI في سير عمل إجراءات GitHub من خلال:

  • تنزيل إصدار معين من Terraform CLI وإضافته إلى PATH.
  • تكوين ملف تكوين واجهة سطر الأوامر Terraform مع الخدمة السحابية من Terraform أو اسم مضيف المؤسسة ورمز مميز لواجهة برمجة التطبيقات.
  • تثبيت برنامج نصي لبرنامج تضمين لتضمين المكالمات اللاحقة للثنائي terraform وعرض STDOUT وSTDERR ورمز الخروج كمخرجات تسمى stdoutو stderrو على exitcodeالتوالي.

مصادقة إجراءات "GitHub Actions" مع Azure

تدعم أداة Terraform العديد من الخيارات للمصادقة باستخدام خدمة Azure:

  • عند استخدام أداة Terraform بشكل تفاعلي، نوصي بالمصادقة بواسطة حساب Microsoft.
  • عند استخدام Terraform من التعليمات البرمجية أو عن طريق الأتمتة، نوصي بالمصادقة عبر Azure Service Principal.

كيان الخدمة هو عبارة عن هوية تُستخدم مع التطبيقات والخدمات المستضافة والأدوات المؤتمتة للوصول إلى موارد Azure.

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

في الوحدة التالية، سنقوم بإعداد نموذج لمشروعٍ واستخدام إجراءات "GitHub Actions" مع أداة Terraform لتوزيع أوامره في خدمة Azure.

المفاهيم الرئيسية لـ Azure Pipelines الجديدة

لنتعرف على المكونات التي تشكل Azure Pipelines.

رسم تخطيطي للمفاهيم والمكونات الرئيسية في Azure Pipeline.

  • المشغل يخبر البنية الأساسية لبرنامج ربط العمليات التجارية بالتشغيل.
  • تتكون البنية الأساسية لبرنامج ربط العمليات التجارية من مرحلة واحدة أو أكثر. يمكن نشر البنية الأساسية لبرنامج ربط العمليات التجارية إلى بيئة واحدة أو أكثر.
  • المرحلة هي طريقة لتنظيم الوظيفة في البنية الأساسية لبرنامج ربط العمليات التجارية ويمكن أن يكون لكل مرحلة وظيفة واحدة أو أكثر.
  • يتم تشغيل كل وظيفة على وكيل واحد. يمكن أن تكون الوظيفة أيضا بدون عامل.
  • يقوم كل عامل بتشغيل مهمة تحتوي على خطوة واحدة أو أكثر.
  • يمكن أن تكون الخطوة مهمة أو برنامج نصي، وهي أصغر كتلة بناء للبنية الأساسية لبرنامج ربط العمليات التجارية.
  • المهمة هي برنامج نصي معبأة مسبقا يقوم بإجراء، مثل استدعاء واجهة برمجة تطبيقات REST أو نشر أداة بناء.
  • الأداة هي مجموعة من الملفات أو الحزم المنشورة بواسطة تشغيل.

تلميح

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

مهام Terraform لـ Azure Pipelines

عند تنفيذ الأوامر التي تتفاعل مع Azure مثل plan وapply وdestroy، ستستخدم المهمة اتصال خدمة Azure لتفويض العمليات مقابل الاشتراك المستهدف. الطريقة الموصى بها للاتصال ب Azure هي ربط اتصال الخدمة ب Azure Service Principal. «أساس خدمة Azure» هو هوية تقوم بإنشائها لاستخدام أدوات مؤتمتة للوصول إلى موارد Azure.

يستخدم مقتطف YAML التالي موفر azurermAzure Pipeline Terraform . يتم تحديد اتصال الخدمة عبر الإدخال environmentServiceNameAzureRM :

- task: TerraformTaskV1@0
  inputs:
    provider: 'azurerm'
    command: 'apply'
    workingDirectory: $(Build.Repository.LocalPath)/terraform
    backendAzureRmContainerName: 'tfstate'
    backendAzureRmKey: 'tf/terraform.tfstate'
    environmentServiceNameAzureRM: $(serviceConnection)

تلميح

إذا كنت تستخدم azurerm كموفر Azure Pipeline Terraform، فستحتاج أيضا إلى توفير اتصال الخدمة وحاوية التخزين لاستخدامها مع حالة الواجهة الخلفية ل Terraform.

تمرير المعلمات

توجد أساليب متعددة لتمرير المعلمات إلى أوامر terraform. تعطيك المتغيرات وسيلة مريحة للحصول على وحدات بت رئيسية من البيانات في أجزاء مختلفة من خط الأنابيب.

يمكنك تعيين متغير لخط أنابيب بناء باتباع الخطوات التالية:

  1. انتقل إلى صفحة Pipelines ، وحدد البنية الأساسية لبرنامج ربط العمليات التجارية المناسبة، وحدد Edit.
  2. حدد موقع المتغيرات لهذا المسار.
  3. إضافة المتغير أو تحديثه.
  4. لوضع علامة على المتغير كبيانات سرية، حدد الاحتفاظ بهذه القيمة سرية.
  5. احفظ خط الأنابيب.

إخراج Terraform إلى متغيرات خط الأنابيب

تدعم مهمة TerraformCLI تشغيل الأمر Terraform output . عند تشغيل CLI، سيتم إنشاء متغيرات البنية الأساسية لبرنامج ربط العمليات التجارية من كل متغير إخراج منبعث من terraform output الأمر .

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

في الوحدة التالية، سنقوم بإعداد نموذج لمشروعٍ واستخدام Azure Pipelines مع أداة Terraform لتوزيع أوامره في خدمة Azure.