M365Con 2027 – مؤتمر مجاني عبر الإنترنت · 11–22 Jan 2027 · 120 sessions→ m365con.net

المدونة · Mirko Peters

تبسيط DevOps: دمج Azure CLI في خطوط عمل CI/CD

By ·

في عالم تسليم البرمجيات الحديث سريع الوتيرة، تكمن كل الأهمية في الكفاءة والسرعة. ومع اعتماد فرق التطوير لممارسات التكامل المستمر والنشر المستمر (CI/CD)، أصبحت الحاجة إلى أدوات أتمتة خفيفة وموثوقة ومتعددة المنصات أكثر إلحاحًا من أي وقت مضى. سواء كنت تنشئ بيئات تجريبية مؤقتة، أو تنشر البنية التحتية ككود، أو تهيئ الخدمات المصغّرة، يجب أن تنفذ أدوات خط العمل لديك بسرعة واتساق.

Automatically translated with AI from the original post. Read the English original

▶ BLOGStreamlining DevOps:Integrating Azure CLI…M365.FM
Titelbild: Streamlining DevOps: Integrating Azure CLI into CI/CD Pipelines

في عالم تسليم البرمجيات الحديث سريع الوتيرة، تكمن كل الأهمية في الكفاءة والسرعة. ومع اعتماد فرق التطوير لممارسات التكامل المستمر والنشر المستمر (CI/CD)، أصبحت الحاجة إلى أدوات أتمتة خفيفة وموثوقة ومتعددة المنصات أكثر إلحاحًا من أي وقت مضى. سواء كنت تنشئ بيئات تجريبية مؤقتة، أو تنشر البنية التحتية ككود، أو تهيئ الخدمات المصغّرة، يجب أن تنفذ أدوات خط العمل لديك بسرعة واتساق.

إليكم Azure CLI. فقد صُممت لتكون بسيطة وسريعة وتعمل عبر المنصات المختلفة، وسرعان ما أصبحت الأداة المفضلة لمهندسي السحابة الساعين إلى تبسيط سير عمل DevOps لديهم. في هذا المقال، سنستعرض أسباب تميّز Azure CLI في خطوط النشر الحديثة، ومقارنته بأدوات الإدارة البديلة، وكيفية دمجه بسلاسة في عمليات CI/CD لديك.

إذا أعجبك هذا التحليل المعمّق، فلا تفوّت حلقتنا البودكاست ذات الصلة، Azure CLI vs PowerShell: Which Should You Use?، حيث نفصّل الفروق الجوهرية بين واجهتي إدارة السحابة الرئيسيتين من Microsoft.

مقدمة إلى Azure CLI في CI/CD

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

تلبي Azure CLI هذه المتطلبات بشكل مباشر. فمن خلال بنية أوامر نظيفة وملائمة للنصوص، وتُخرج البيانات بتنسيق JSON افتراضيًا، تتيح للمطورين والوكلاء الآليين الاستعلام عن موارد السحابة وإنشائها وتعديلها بأقل جهد. وعند تضمينها داخل خط عمل CI/CD، مثل GitHub Actions أو GitLab CI أو Azure DevOps، فإنها تحوّل خطوات النشر المجردة إلى شيفرة قابلة للتكرار ويمكن التنبؤ بنتائجها.

لماذا Azure CLI لخطوط العمل الحديثة

عند تصميم بنى CI/CD الحديثة، تُحسب كل ثانية. فعوامل البناء تستهلك موارد الحوسبة، وطوابير النشر الطويلة قد تعيق سرعة التطوير. وقد صُممت Azure CLI خصيصًا لهذه البيئات عالية السرعة. ولأن بنيتها الأساسية تعتمد على استدعاءات REST خفيفة، فإن التنفيذ سريع للغاية وفعّال في استهلاك الموارد.

علاوة على ذلك، غالبًا ما تعمل عوامل البناء المعتمدة على الحاويات على صور Linux مبسّطة. فتثبيت تبعيات ضخمة قد يُطيل أوقات بدء خط العمل. ويجعل الحجم الأدنى لـ Azure CLI وسهولة تثبيتها منها رفيقًا مثاليًا لمشغّلات CI/CD القائمة على Docker. وتتيح للمطورين اختبار نصوص النشر محليًا في بيئة شل مطابقة لتلك التي يشغّلها خادم البناء البعيد، مما يقلل بدرجة كبيرة أخطاء "إنه يعمل على جهازي".

Azure CLI مقابل PowerShell: مقارنة سريعة

من النقاشات الشائعة في إدارة السحابة الاختيار بين Azure CLI وPowerShell. فكلتا الأداتين قويتان للغاية، لكنهما تخدمان شخصيات مستخدمين وأنماط تشغيل مختلفة تمامًا. ولفهم سبب تفوّق Azure CLI غالبًا في خطوط عمل CI/CD، من المفيد مقارنتهما جنبًا إلى جنب.

السيناريوالأداة الأنسبلماذا تتميز
نشر الموارد السريعAzure CLIسريعة وخفيفة، أوامر بسيطة، تعمل على أي منصة، ممتازة لـ DevOps والبرمجة النصية.
الأتمتة على مستوى المؤسساتPowerShellتتعامل مع الأتمتة المعقدة، ومخرجات قائمة على الكائنات، والعمليات الجماعية، وتكامل قوي مع Windows.
تكامل خط عمل CI/CDAzure CLIأوامر عالية المستوى، ودعم أصيل للبنية التحتية ككود، وإعداد سهل لخط العمل.
البرمجة النصية المتقدمةPowerShellبرمجة نصية مرنة، وإنشاء أدوات مخصصة، وتحكم عميق في موارد Azure.
الإدارة متعددة المنصاتAzure CLIيعمل على Linux وmacOS وWindows، ومبني بلغة Python، ومثالي للبيئات المتنوعة.

بينما يتفوق PowerShell في المهام الإدارية الثقيلة الموجهة للكائنات والتكاملات العميقة مع Windows، تتفوق Azure CLI في خطوط العمل المعتمدة على الحاويات بفضل مخرجاتها النصية البسيطة، وأزمنة تنفيذها الأسرع في العمليات الجماعية الخفيفة، وتوافقها الأصيل مع Bash.

تثبيت Azure CLI وإعدادها

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

إذا كنت تُعدّ جهازاً محلياً أو وكيل بناء على جهاز افتراضي يعمل بنظام Windows، فيمكنك تثبيت الأداة باستخدام PowerShell:

Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi

بالنسبة إلى مشغّلات CI/CD التي تعمل بنظام Linux (مثل مشغّلات GitHub Actions القياسية على Ubuntu)، يمكن إنجاز التثبيت في خطوة واحدة باستخدام مستودع حزم Microsoft، أو يمكنك الاستفادة من بيئات المشغّلات المثبّتة مسبقاً التي تتضمن Azure CLI افتراضياً. وبعد التثبيت، يكفي تشغيل الأمر التالي للتحقق منه:

az --version

بالنسبة إلى مصادقة خطوط الأنابيب، تجنّب تسجيل الدخول التفاعلي عبر المتصفح. بدلاً من ذلك، اضبط خط الأنابيب ليتم التوثيق بأمان باستخدام Service Principal أو Managed Identity:

az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID

أساسيات بنية أوامر Azure CLI

تكمن ميزة Azure CLI في بنية أوامرها البديهية والمتوقعة. يبدأ كل أمر بالمساحة الاسمية az، يليها المورد أو الخدمة، وأخيراً الإجراء المطلوب تنفيذه. وهذه البنية المسطّحة للأوامر تجعل كتابة سكربتات خطوط الأنابيب وقراءتها أمراً سهلاً إلى حد كبير.

فيما يلي بعض الأوامر الأساسية المستخدمة بكثرة في أتمتة البنية السحابية:

# Create a resource group
az group create --name MyPipelineResourceGroup --location eastus

# List all virtual machines in a table format
az vm list --output table

# Deploy an ARM or Bicep template
az deployment group create --resource-group MyPipelineResourceGroup --template-file azuredeploy.json

تُرجع أوامر Azure CLI افتراضياً حمولات JSON نظيفة. وهذا يجعل استعلام خصائص محددة باستخدام تعبيرات JMESPath المدمجة (--query) وتمرير هذه القيم إلى الخطوات اللاحقة من سير عمل CI/CD أمراً في غاية السهولة.

أتمتة عمليات النشر باستخدام Azure CLI

الأتمتة هي جوهر DevOps. فعند نشر التطبيقات على Azure، نادراً ما ترغب في الاعتماد على النقرات اليدوية في بوابة Azure. ومن خلال تغليف منطق النشر في سكربتات Azure CLI، تضمن تناسقاً تاماً بين بيئات التطوير والتجهيز والإنتاج.

تخيّل أنك تحتاج إلى توفير Azure App Service جديد، وتحديث إعدادات تكوينه، ونشر التعليمات البرمجية الخاصة بك عند كل دمج إلى الفرع الرئيسي. يجعل سكربت آلي باستخدام Azure CLI هذه المهمة بسيطة للغاية:

# Create an App Service plan
az appservice plan create --name MyPlan --resource-group MyResourceGroup --sku B1 --is-linux

# Create the web app
az webapp create --name MyAppService --resource-group MyResourceGroup --plan MyPlan --runtime "NODE:18-lts"

# Configure environment variables
az webapp config appsettings set --name MyAppService --resource-group MyResourceGroup --settings DATABASE_URL="Server=tcp:myServer.database.windows.net..."

ولأن هذه الأوامر idempotent، فإن تشغيلها عدة مرات لن يُفسد بنيتك التحتية؛ بل يضمن أن تتطابق البيئة المستهدفة مع حالة التكوين المطلوبة.

دمج Azure CLI في خطوط أنابيب CI/CD

يُعدّ دمج أوامر Azure CLI في منظِّمات CI/CD الشائعة، مثل GitHub Actions أو Azure DevOps Pipelines، أمرًا بسيطًا إلى حدٍّ لافت. ولأن وكلاء خطوط الأنابيب يُنفِّذون عادةً نصوص الصدفة (Shell)، يمكنك إدراج أوامر `az` المعتادة مباشرةً في ملفات إعداد سير العمل الخاصة بك.

إليك مثال على مقطع من ملف سير عمل GitHub Actions يقوم بتسجيل الدخول إلى Azure ونشر تطبيق ويب:

name: Deploy to Azure
on:
  push:
    branches: [ main ]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}

    - name: Deploy Azure Resources
      run: |
        az group create --name ProdRG --location eastus
        az deployment group create --resource-group ProdRG --template-file infra/main.bicep

من خلال الجمع بين إجراءات المشغّلات الرسمية وأوامر Azure CLI الخام، تحصل على خط أنابيب نشر قوي وقابل للتدقيق ومؤتمت، ينفذ بسلاسة مع كل تغيير في التعليمات البرمجية.

أفضل الممارسات لتبسيط DevOps باستخدام Azure CLI

للاستفادة القصوى من أتمتة Azure CLI والحفاظ على أمان خطوط أنابيب CI/CD وأدائها، اتبع أفضل الممارسات المثبتة التالية:

  • لا تُدرج الأسرار في الشيفرة أبداً: احرص دائماً على تخزين بيانات اعتماد Service Principal وسلاسل الاتصال ومفاتيح API في مدير الأسرار الآمن لمنصة CI/CD لديك، مثل GitHub Secrets أو Variable Groups في Azure DevOps.
  • ثبّت إصدارات CLI: تتغير بيئات السحابة بسرعة. ولمنع التغييرات الجذرية غير المتوقعة في خطوط الأنابيب، حدّد صراحةً إصدار Azure CLI الذي يجب أن تستخدمه وكلاء البناء لديك.
  • استفد من استعلامات JSON: استخدم معامل --query المدمج لاستخراج معرّفات أو نقاط نهاية محددة من مخرجات الأوامر، بدلاً من كتابة تعبيرات regex خارجية معقدة أو سكربتات تحليل.
  • اجعل السكربتات idempotent: صمّم أوامر CLI الخاصة بك بحيث يمكن تشغيلها بشكل متكرر دون التسبب في آثار جانبية غير مقصودة أو أخطاء تكرار للموارد.
  • نظّف بيئات الاختبار: استخدم سكربتات الإزالة الآلية في خطوط أنابيب طلبات الدمج (PR) لحذف مجموعات الموارد المؤقتة وتجنب تراكم تكاليف سحابية لا داعي لها.

الخاتمة

يُعدّ دمج Azure CLI في خطوط أنابيب CI/CD نقلة نوعية لفرق DevOps الحديثة. فطبيعته الخفيفة، وتوافقه عبر المنصات، وبنية أوامره البديهية، تجعله الرفيق المثالي لعمليات النشر السحابي السريعة والمؤتمتة. ومن خلال الجمع بين ممارسات المصادقة الآمنة، والسكربتات المنظمة جيداً، والتكامل المتين مع خطوط الأنابيب، يمكنك تحقيق مستويات غير مسبوقة من السرعة والموثوقية في دورة تسليم البرمجيات لديك.

لتعمّق أكثر في هذا الموضوع وتستمع إلى نقاش حيوي حول فلسفات سطر الأوامر، تفضّل بالاطلاع على حلقة البودكاست المصاحبة لنا: Azure CLI vs PowerShell: Which Should You Use?. أتقن الأداتين، وافهم نقاط قوة كل منهما المميزة، وتحكّم بالكامل في بنية Azure السحابية لديك اليوم!

Entities in this article

Azure CLI DevOps PowerShell Continuous integration GitHub Actions JSON Azure DevOps Microservices Automation CI/CD pipeline

Related articles

RSS