هندسة المشروع: Roles وInventory
نظّم مستودع النشر كاملًا
هندسة المشروع: Roles وInventory درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
هدف المشروع النهائي
حان وقت نشر تطبيق حقيقي متعدد الطبقات مع نشر تدريجي ودون توقف. الخطوة الأولى: صمّم تخطيط المشروع. 🚀
فكّر باستخدام الأدوار
قسّم النظام إلى أدوار: دور لكل مسؤولية مثل common وweb وapp وdb وloadbalancer. وكل دور قابل لإعادة الاستخدام والاختبار بمفرده.
التخطيط على المستوى الأعلى
يحافظ المستودع المنظم على inventory وgroup_vars وroles وملف playbook الرئيسي site.yml في الجذر، حتى يتمكن أي شخص من العثور على العناصر بسرعة.
deploy/
site.yml
inventory/
group_vars/
host_vars/
roles/يربط site.yml كل شيء
يستورد ملف playbook الرئيسي site.yml ملفات الـ plays الخاصة بكل طبقة بالترتيب. وهو الأمر الوحيد الذي ينشر المكدس بأكمله.
- import_playbook: plays/loadbalancer.yml
- import_playbook: plays/db.yml
- import_playbook: plays/app.yml
- import_playbook: plays/web.ymlاربط الطبقات بالمجموعات
يعرّف inventory لديك مجموعةً لكل طبقة: lb وdb وapp وweb. ويستهدف كل play المضيفين الذين يخصونه تمامًا.
[lb]
lb1
[web]
web1
web2
[app]
app1
app2
[db]
db1group_vars لكل طبقة
خزّن إعدادات الطبقات في group_vars: منافذ web، وإصدار app، وبيانات اعتماد db. وترثها المضيفون تلقائيًا دون نسخ ولصق.
group_vars/web.yml:
nginx_port: 80
upstream: app:8080host_vars للحالات الخاصة
عندما يختلف أحد المضيفين، ضع التجاوزات في host_vars. فقد تتضمن قاعدة db الأساسية، مثلًا، إعدادات النسخ المتماثل التي لا تتوفر لدى البقية.
host_vars/db1.yml:
postgresql_role: primaryثبّت إصدار التطبيق
اجعل إصدار الإصدار متغيرًا بدلًا من جعله نصًا ثابتًا. وتتيح لك نقطة تغيير واحدة التقدم إلى إصدار أحدث أو الرجوع إلى إصدار سابق خلال ثوانٍ.
group_vars/all.yml:
app_version: "2.4.1"افصل بين البيئات
احتفظ بمجلدات inventory لكل بيئة حتى لا تتشارك staging وproduction المضيفين أبدًا. الأدوار نفسها، لكن الأهداف مختلفة.
inventory/
staging/hosts
production/hostsثبّت تبعياتك
أدرج أدوار Galaxy الخارجية في requirements.yml حتى يثبّت كل عضو في الفريق وكل تشغيل لـ CI شفرة الأتمتة نفسها تمامًا.
roles:
- name: geerlingguy.nginx
version: 3.1.4الاستثمار في البنية أولًا يؤتي ثماره
يحوّل التخطيط المدروس عملية نشر مخيفة إلى بضعة أوامر يمكن التنبؤ بها. ويوفر لك التنظيم الآن عناء معالجة المشكلات لاحقًا. 🧱
اختبار سريع
دعونا نضع جزءًا من التهيئة في مكانه الصحيح.
مراجعة
صمّمت المستودع: أدوار لكل طبقة، ومجموعات inventory، وgroup_vars وhost_vars، وsite.yml يشغّل عملية النشر بأكملها. ✅
الأسئلة الشائعة
هل درس «هندسة المشروع: Roles وInventory» مجاني؟
نعم — نص درس «هندسة المشروع: Roles وInventory» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «هندسة المشروع: Roles وInventory»؟
نظّم مستودع النشر كاملًا تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «هندسة المشروع: Roles وInventory»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- هندسة المشروع: Roles وInventory
- تجهيز المضيفين وتأمينهم وتهيئتهم الأولية
- نشر متدرّج خلف Load Balancer
- اختبارات Smoke والتراجع والإشعارات