0Pricing
DevOps Bootcamp · درس

أتمتة تحديثات البنية التحتية

طبّقوا سير عمل لتخطيط تغييرات البنية التحتية وتطبيقها وإتلافها بأمان، مع إضافة خطوات للمراجعة والموافقة.

أتمتة تحديثات البنية التحتية درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

لماذا نؤتمت تحديثات IaC؟

قد تكون إدارة البنية التحتية يدويًا بطيئة ومعرّضة للأخطاء. تساعد البنية التحتية كرمز (IaC) على ذلك من خلال تعريف بنيتكم التحتية باستخدام الرمز البرمجي.

تؤدي أتمتة تحديثات IaC باستخدام أدوات مثل GitHub Actions إلى تحقيق الاتساق والسرعة وتقليل الأخطاء البشرية. كما تضمن أن تتطابق بنيتكم التحتية دائمًا مع تعريفها.

دورة حياة سير عمل IaC

تتبع أتمتة IaC دورة حياة واضحة: التخطيط والتطبيق وأحيانًا الإزالة. ويمكن دمج كل خطوة في مسار CI/CD الخاص بكم.

  • التخطيط: راجعوا التغييرات المقترحة من دون تطبيقها.
  • التطبيق: نفّذوا التغييرات المخطط لها على بنيتكم التحتية.
  • الإزالة: أزيلوا موارد البنية التحتية (استخدموا هذا الخيار بحذر شديد!).

يساعد GitHub Actions على إدارة هذه الخطوات بأمان.

التخطيط للتغييرات باستخدام Terraform

قبل إجراء أي تغييرات، من الضروري معرفة ما سيحدث. يساعدكم الأمر plan في Terraform على معاينة تعديلات البنية التحتية.

فهو يقارن الحالة المطلوبة (المحددة في الرمز البرمجي) بالحالة الحالية لبنيتكم التحتية، ويعرض الموارد التي ستتم إضافتها أو تغييرها أو إزالتها.

جرّبوا تشغيل هذه الأوامر في مشروع Terraform بسيط:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

سير عمل `terraform plan`

لننشئ سير عمل في GitHub Actions يشغّل terraform plan تلقائيًا كلما دُفعت تغييرات الرمز البرمجي إلى الفرع الرئيسي. يوفّر لكم ذلك ملاحظات فورية حول التغييرات المقترحة.

يمكن بعد ذلك مراجعة ناتج التخطيط مباشرةً في طلب السحب أو في سجلات سير العمل.

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Plan
      id: plan
      run: terraform plan -no-color

الموافقة اليدوية باستخدام Environments

قد يكون تطبيق تغييرات البنية التحتية تلقائيًا محفوفًا بالمخاطر. توفّر GitHub Environments طريقة لإضافة خطوات الموافقة اليدوية إلى مسارات سير العمل.

يمكنكم تعريف بيئات، مثل "staging" و"production"، وتعيين قواعد مثل اشتراط مراجعين محددين أو فترات انتظار قبل أن تتمكن مهمة النشر من المتابعة.

تضيف هذه الخطوة نقطة مراجعة بشرية مهمة قبل تنفيذ العمليات الحساسة.

سير عمل تطبيق التغييرات

لتطبيق التغييرات بأمان، سنضبط سير عمل يستهدف GitHub Environment محمية. ستتوقف المهمة مؤقتًا وتنتظر موافقة أعضاء الفريق المعيّنين.

بعد الحصول على الموافقة فقط، سيُنفّذ الأمر terraform apply لتحديث بنيتكم التحتية.

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

إزالة البنية التحتية بأمان

يزيل الأمر terraform destroy جميع الموارد المحددة في إعداد Terraform نهائيًا. هذه عملية قوية جدًا وقد تكون خطيرة.

ينبغي استخدامه فقط في سيناريوهات محددة وتحت السيطرة، مثل إزالة بيئة اختبار مؤقتة. تحقّقوا دائمًا مرة أخرى قبل المتابعة!

لا تؤتمتوا عملية `destroy` مطلقًا من دون بوابات يدوية قوية وعمليات تأكيد متعددة.

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

إزالة البنية التحتية بصورة مضبوطة

حتى بالنسبة إلى `destroy`، يمكننا الاستفادة من GitHub Environments لإضافة طبقة حماية أخرى. ويضمن ذلك ألا يتمكن أحد من إزالة موارد الإنتاج، عن طريق الخطأ أو بشكل ضار، من دون الحصول على التفويض المناسب.

ينبغي أن يتطلب سير العمل موافقة، وألا يكون قابلاً للتشغيل إلا يدويًا، ومن الأفضل أن يقتصر ذلك على أدوار محددة.

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

أفضل ممارسات أتمتة IaC

للحفاظ على مسار IaC قوي وآمن:

  • مراجعات الرمز البرمجي: اشترطوا دائمًا إجراء مراجعات للتغييرات على IaC.
  • أقل قدر من الامتيازات: امنحوا رموز سير العمل وحسابات الخدمة الحد الأدنى من الأذونات اللازمة فقط.
  • قفل الحالة: تأكدوا من أن أداة IaC الخاصة بكم، مثل Terraform، تستخدم قفل الحالة لمنع التعديلات المتزامنة.
  • تغييرات صغيرة وتدريجية: تجنّبوا تحديثات البنية التحتية الكبيرة والمتجانسة.
  • بيئات منفصلة: استخدموا بيئات متميزة (dev وstaging وprod) مع قواعد موافقة مختلفة.

اختبار سير عمل IaC

لقد تعلمتم كيفية أتمتة تحديثات IaC من خلال تخطيط الموارد وتطبيقها وإزالتها. والآن، لنختبر مدى فهمكم لتأمين هذه العمليات.

مراجعة: تحديثات IaC المؤتمتة

لقد تعلمتم في هذا الدرس كيفية أتمتة مسارات عمل البنية التحتية كرمز باستخدام GitHub Actions. وتناولنا ما يلي:

  • تشغيل terraform plan لمعاينة التغييرات بأمان.
  • استخدام GitHub Environments لإضافة بوابات موافقة يدوية قبل تطبيق البنية التحتية أو إزالتها.
  • تنفيذ مسارات سير عمل لعمليات terraform apply وterraform destroy المضبوطة.
  • أفضل الممارسات الأساسية لأتمتة IaC الآمنة والموثوقة.

تساعدكم أتمتة IaC على إدارة مواردكم السحابية بكفاءة وثقة!

الأسئلة الشائعة

هل درس «أتمتة تحديثات البنية التحتية» مجاني؟

نعم — نص درس «أتمتة تحديثات البنية التحتية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «أتمتة تحديثات البنية التحتية»؟

طبّقوا سير عمل لتخطيط تغييرات البنية التحتية وتطبيقها وإتلافها بأمان، مع إضافة خطوات للمراجعة والموافقة. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «أتمتة تحديثات البنية التحتية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. IaC باستخدام Terraform وGitHub Actions
  2. إدارة الموارد السحابية
  3. أتمتة تحديثات البنية التحتية
  4. إدارة حالة Terraform والواجهات الخلفية البعيدة
← العودة إلى DevOps Bootcamp