الكلمة المفتاحية loop على قائمة
ثبّت حزمًا متعددة في مهمة واحدة
الكلمة المفتاحية loop على قائمة درس مجاني في Ansible Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Ansible Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Ansible Academy 4 دروس في المجموع.
توقّف عن نسخ المهام ولصقها
هل تحتاج إلى تثبيت ثلاث حزم؟ كتابة ثلاث مهام متشابهة تقريبًا أمر ممل وعرضة للأخطاء. تتيح الكلمة المفتاحية loop تكرار مهمة واحدة على قائمة. 🔁
ما الذي يفعله loop
أضف loop إلى مهمة وامنحه قائمة. يشغّل Ansible المهمة مرة واحدة لكل عنصر، ويضع كل قيمة في وسيطات الوحدة.
تعرّف إلى المتغير item
داخل مهمة تكرارية، تتوفر قيمة القائمة الحالية باسم item. يمكنك الإشارة إليها باستخدام {{ item }} أينما احتجت إلى القيمة.
- name: Show each fruit
ansible.builtin.debug:
msg: "{{ item }}"
loop:
- apple
- banana
- cherryتثبيت حزم متعددة
الاستخدام الأشهر هو تثبيت قائمة كاملة من الحزم في مهمة واحدة. تنتقل كل تسمية إلى وحدة الحزم عبر item.
- name: Install tools
ansible.builtin.package:
name: "{{ item }}"
state: present
loop:
- git
- curl
- vimالتكرار على قائمة في متغير
لا يلزم أن تكون القائمة مضمنة في المهمة. وجّه loop إلى متغير لكي تتكيف المهمة نفسها مع القيم التي تعرّفها في مكان آخر.
vars:
packages:
- git
- curl
tasks:
- name: Install
ansible.builtin.package:
name: "{{ item }}"
loop: "{{ packages }}"loop مقارنةً بـ with_items
قد ترى ملفات تشغيل أقدم تستخدم with_items. لا يزال يعمل، لكن loop هو الأسلوب الحديث والموصى به للقوائم البسيطة.
مهمة واحدة، نتائج متعددة
يشغّل loop المهمة لكل عنصر، لذلك يعرض الخرج سطر نتيجة واحدًا لكل تكرار. وسترى بالضبط القيم التي تغيّرت.
تحافظ الحلقات على خاصية idempotency
لا يؤدي استخدام loop إلى كسر خاصية idempotency. إذا كانت الحزمة موجودة بالفعل، فسيبلغ ذلك التكرار عن ok؛ أما الحزم الجديدة فقط فسيُبلّغ عنها بأنها changed.
تجمع العديد من مديري الحزم العمليات
تقبل بعض الوحدات قائمة مباشرة، وهذا أسرع أيضًا. لكن loop هو النمط العام الذي يعمل مع جميع الوحدات تقريبًا.
التكرار على الأرقام أيضًا
القوائم ليست مجرد سلاسل نصية. يمكنك التكرار على أرقام أو أي نوع من البيانات، ويحمل item أي قيمة تحتويها القائمة.
- name: Print ports
ansible.builtin.debug:
msg: "Port {{ item }}"
loop:
- 80
- 443
- 8080القوائم الفارغة آمنة
إذا كانت القائمة فارغة، فستُشغّل المهمة صفر مرة ببساطة. لا خطأ ولا ضرر. لا مشكلة في التكرار على متغير قد تكون قيمته قائمة فارغة.
تحقّق سريع
داخل مهمة تكرارية، كيف تشير إلى قيمة القائمة الحالية؟
مراجعة: يمكنك استخدام loop
استبدلت المهام المتكررة باستخدام loop واحد، ووصلت إلى كل قيمة عبر item، وحافظت على خاصية idempotency. التالي: التكرار على القواميس. 🎉
الأسئلة الشائعة
هل درس «الكلمة المفتاحية loop على قائمة» مجاني؟
نعم — نص درس «الكلمة المفتاحية loop على قائمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Ansible Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Ansible Academy 4 دروس في المجموع.
ماذا ستتعلم في «الكلمة المفتاحية loop على قائمة»؟
ثبّت حزمًا متعددة في مهمة واحدة تتمرن على Ansible Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Ansible Academy؟
لا تُشترط خبرة سابقة. Ansible Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «الكلمة المفتاحية loop على قائمة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Ansible Academy هذا؟
نعم. كل درس في Ansible Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الكلمة المفتاحية loop على قائمة
- التكرار على القواميس
- الحلقات المتداخلة باستخدام subelements
- loop_control: التسمية والفهرس والتوقّف المؤقت