allow_duplicates وقابلية Role للتكرار الآمن
تحكّم في تكرار تنفيذ Role
allow_duplicates وقابلية Role للتكرار الآمن درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
تُشغَّل الأدوار مرة واحدة افتراضيًا
إذا اعتمد دوران على دور common، يتصرف Ansible بذكاء: فيشغّل common مرة واحدة فقط، لا مرتين، أثناء تنفيذ واحد.
سبب وجود إزالة التكرار
تمنع إزالة التكرار أدوار الإعداد المشتركة من تكرار العمل المكلف، مثل إعادة تشغيل دور تقوية أساسي لكل دور تطبيق.
الدور نفسه والمعلمات نفسها
لا يحدث التخطي إلا عندما يُطلب الدور باستخدام المعلمات نفسها. وتُعامل الاستدعاءات المتطابقة على أنها أُنجزت بالفعل.
المعلمات المختلفة تعني تشغيله مجددًا
استدعِ الدور نفسه باستخدام متغيرات مختلفة، وسيشغّله Ansible مرة أخرى. فإذا كان لدور vhost إعدادان، فسيطبقهما مرتين كما تريد.
roles:
- role: vhost
vars: { name: site_a }
- role: vhost
vars: { name: site_b }تعرّف على allow_duplicates
يتحكم إعداد allow_duplicates في meta/main.yml بهذا السلوك. عيّنه إلى true، وقد يُشغَّل الدور عدة مرات أثناء التنفيذ.
# meta/main.yml
allow_duplicates: trueمتى تسمح بالتكرار
فعّل هذا الإعداد للأدوار المصممة للتطبيق مرات عديدة، مثل إنشاء عدة مستخدمين أو مضيفين افتراضيين، بحيث تنفذ كل مرة عملًا جديدًا فعلًا.
القيمة الافتراضية هي false
تكون قيمة allow_duplicates هي false افتراضيًا، لذلك يُشغَّل الدور ذو المعلمات المتطابقة مرة واحدة فقط. اتركها معطلة لأدوار الإعداد التي تُنفَّذ مرة واحدة.
إزالة التكرار ليست idempotency
إن تخطي استدعاء مكرر مجرد تسهيل وقت التشغيل. أما idempotency الحقيقية فتعني أن كل مهمة تتقارب نحو حالة معينة، مهما تكرر تشغيلها.
أنشئ مهام idempotent
فضّل داخل الدور الوحدات المعتمدة على الحالة بدلًا من command الخام. فالدور idempotent حقًا آمن عند تطبيقه مرتين دون ضرر.
يعيد include_role التشغيل دائمًا
انتبه: لا يلتزم include_role بمنطق إزالة التكرار بالطريقة نفسها. فالدور المضمَّن ديناميكيًا يُشغَّل في كل مرة تصل فيها إليه.
قابل للتركيب وآمن
اجمع بين إزالة التكرار وallow_duplicates والمهام idempotent لبناء تسلسلات هرمية تتركيب بسلاسة وتظل آمنة عند إعادة تشغيلها.
اختبار سريع
تذكّر الإعداد الذي يتيح للدور العمل أكثر من مرة في play.
مراجعة
تزيل Ansible التكرار من استدعاءات الأدوار المتطابقة؛ عيّن allow_duplicates إلى true لتكرار أحدها، وحافظ على أن تكون المهام idempotent لإعادة التشغيل بأمان. ♻️
الأسئلة الشائعة
هل درس «allow_duplicates وقابلية Role للتكرار الآمن» مجاني؟
نعم — نص درس «allow_duplicates وقابلية Role للتكرار الآمن» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «allow_duplicates وقابلية Role للتكرار الآمن»؟
تحكّم في تكرار تنفيذ Role تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «allow_duplicates وقابلية Role للتكرار الآمن»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تبعيات Role في meta/main.yml
- defaults مقابل vars: ترتيب التجاوز
- include_role وimport_role وقت التشغيل
- allow_duplicates وقابلية Role للتكرار الآمن