تمرين - إنشاء مسار Azure DevOps لنشر تطبيقك الأصلي على السحابة
يريد منك مديرك تغيير CI/CD لتطبيق eShop للشركات لاستخدام Azure Pipelines. ستقوم الآن بإنشاء Azure DevOps Pipeline لإنشاء خدمة منتجاتك ونشرها.
إنشاء Azure DevOps Pipeline
Important
قبل البدء، ستحتاج إلى حساب Azure DevOps. إذا لم يكن لديك واحد ، فيمكنك إنشاء واحدة مجانا في dev.azure.com.
- سجل الدخول إلى dev.azure.com.
- حدد + new project.
- بالنسبة لاسم المشروع، أدخل نشر eShop.
- اترك الرؤية مضبوطا على خاص، وحدد إنشاء.
- على اليمين، حدد التدفقات، ثم حدد إنشاء خط الأنابيب.
- في صفحة الاتصال، بالنسبة إلى أين التعليمات البرمجية الخاصة بك؟، حدد GitHub.
- إذا طلب منك ذلك، فسجل الدخول إلى GitHub، Azure Pipelines للوصول إلى حساب GitHub الخاص بك.
- بالنسبة إلى حدد مستودعا، حدد المستودع المتشعب.
- في صفحة التكوين ، حدد خيار التوزيع إلى خدمة Azure Kubernetes .
- في جزء Deploy to Azure Kubernetes Service ، حدد اشتراك Azure، ثم حدد Continue.
- إذا طلب منك ذلك، فسجل الدخول إلى اشتراك Azure الخاص بك.
- بالنسبة إلى نظام المجموعة، حدد نظام مجموعة AKS الذي قمت بإنشائه في الوحدة السابقة aks-eshop.
- بالنسبة لمساحة الاسم، اترك موجودة محددة، ثم حدد افتراضي.
- بالنسبة لسجل الحاوية، حدد Azure Container Registry الذي قمت بإنشائه في الوحدة السابقة مثل acseshop186748394.
- بالنسبة إلى اسم الصورة، أدخل productservice.
- بالنسبة لمنفذ الخدمة، أدخل 8080.
- حدد التحقق من صحةوتكوينها .
مراجعة ملف YAML للبنية الأساسية لبرنامج ربط العمليات التجارية
تستخدم Azure Pipelines ملفات YAML لتحديد خطوات إنشاء تطبيقك ونشره. يتم تخزين ملف YAML في مستودع GitHub الخاص بك وتم إنشاؤه تلقائيا لك، استنادا إلى المعلومات التي قدمتها.
دعونا نراجع ملف YAML:
trigger:
- main
resources:
- repo: self
variables:
# Container registry service connection established during pipeline creation
dockerRegistryServiceConnection: '3bcbb23c-6fca-4ff0-8719-bfbdb64a89b1'
imageRepository: 'productservice'
containerRegistry: 'acseshop186748394.azurecr.io'
dockerfilePath: '**/Dockerfile'
tag: '$(Build.BuildId)'
imagePullSecret: 'acseshop18674839414442d34-auth'
# Agent VM image name
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
- upload: manifests
artifact: manifests
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy
pool:
vmImage: $(vmImageName)
environment: 'PhilStollerymod9cloudnativeexercisecode-1959.default'
strategy:
runOnce:
deploy:
steps:
- task: KubernetesManifest@0
displayName: Create imagePullSecret
inputs:
action: createSecret
secretName: $(imagePullSecret)
dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
- task: KubernetesManifest@0
displayName: Deploy to Kubernetes cluster
inputs:
action: deploy
manifests: |
$(Pipeline.Workspace)/manifests/deployment.yml
$(Pipeline.Workspace)/manifests/service.yml
imagePullSecrets: |
$(imagePullSecret)
containers: |
$(containerRegistry)/$(imageRepository):$(tag)
يحدد قسما المشغلوالموارد متى يجب تشغيل المسار في هذه الحالة، سيتم تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية عند إجراء تغيير على الفرع الرئيسي لمستودعك.
يحدد قسم المتغيرات المتغيرات المستخدمة في خط الأنابيب. يتم استخدام المتغيرات لتعريف Azure Container Registry وDockerfile لاستخدامه.
ثم يحدد YAML وظيفة إنشاء تستخدم عامل ubuntu-new . تستخدم المهمة مهمة Docker لإنشاء الصورة ودفعها إلى Azure Container Registry.
المرحلة الأخيرة هي نشر خدمة المنتج المحدثة إلى AKS. تستخدم الوظيفة مهمة KubernetesManifest لنشر الصورة إلى AKS.
تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية
في الجزء العلوي الأيسر من صفحة مراجعة مسار YAML، حدد حفظ وتشغيل. في جزء حفظ وتشغيل:
- حدد Create a new branch for this commit.
- اترك كافة الخيارات الأخرى معينة إلى الإعدادات الافتراضية الخاصة بها.
- حدد حفظ وتشغيل.
مراقبة البنية الأساسية لبرنامج ربط العمليات التجارية واستكشاف الأخطاء وإصلاحها
تتم مراقبة Azure Pipelines وإدارتها من مدخل Azure DevOps. لنلق نظرة على إخراج تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية التي قمت بإنشائها.
تعرض صفحة الملخص جميع مراحل البنية الأساسية لبرنامج ربط العمليات التجارية قيد التشغيل. يمكنك تحديد مرحلة لعرض الخطوات بمزيد من التفصيل. في لحظة، سترى أن البنية الأساسية لبرنامج ربط العمليات التجارية قد فشلت. حدد مرحلة الإنشاء .
في مرحلة الإنشاء، يمكنك أن ترى أن البنية قد فشلت. حدد إنشاء صورة ودفعها إلى الخطوة Azure Container Registry. يظهر الخطأ في ملف السجل:
##[error]Unhandled: No Dockerfile matching /home/vsts/work/1/s/**/Dockerfile was found.
إصلاح الخطأ
في DevOps، ارجع إلى صفحة ملخص البنية الأساسية لبرنامج ربط العمليات التجارية. ستقوم بتحرير البنية الأساسية لبرنامج ربط العمليات التجارية التي تم إنشاؤها لإصلاح الخطأ.
في الجزء العلوي الأيسر، حدد قائمة المزيد من الإجراءات ، ثم حدد تحرير التدفق.
يحدد السطر 17 من ملف YAML Dockerfile المراد استخدامه، ويتوقع المسار بشكل افتراضي أن يكون هناك ملف باسم Dockerfile في جذر المستودع.
يستخدم المتجر الإلكتروني ملف عامل إرساء مختلف لخدمة المنتج المسمى DockerfileProducts. تحرير السطر 17 ليكون:
dockerfilePath: '**/DockerfileProducts.acr'حدد حفظ.
في جزء حفظ ، حدد حفظ.
حدد تشغيل ثم في جزء تشغيل التدفق ، حدد تشغيل.
شاهد مرحلة البناء كاملة. تتوقف مرحلة النشر مؤقتا حتى تقوم بتحديدها والسماح لها بالتشغيل.
اكتمل المسار بنجاح. حدد مرحلة النشر لعرض الخطوات.