0Pricing
DevOps Bootcamp · درس

التكرار على القواميس

أنشئ مستخدمين من بيانات المفتاح والقيمة

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

القوائم لا تكفي

يتطلب إنشاء المستخدمين أكثر من اسم: مجموعة وصدفة وحالة. لا يمكن لقائمة مسطحة حمل كل ذلك. أنت بحاجة إلى قائمة من القواميس. 🗂️

قائمة من القواميس

يصبح كل إدخال في القائمة قاموسًا صغيرًا من أزواج المفتاح والقيمة. وهكذا يتوفر في كل تكرار عدة حقول مسماة للعمل معها.

loop:
  - { name: alice, group: admin }
  - { name: bob, group: dev }

الوصول إلى المفاتيح باستخدام item.key

عندما يكون item قاموسًا، اقرأ كل حقل باستخدام item.fieldname. لذلك يجلب item.name وitem.group القيم من الإدخال الحالي.

- name: Add users
  ansible.builtin.user:
    name: "{{ item.name }}"
    group: "{{ item.group }}"
  loop:
    - { name: alice, group: admin }
    - { name: bob, group: dev }

صيغة متعددة الأسطر أوضح

قد تصبح الأقواس المضمنة مزدحمة. اكتب كل قاموس على عدة أسطر لتحسين سهولة القراءة عندما تحتوي الإدخالات على مفاتيح كثيرة.

loop:
  - name: alice
    group: admin
    shell: /bin/bash
  - name: bob
    group: dev
    shell: /bin/zsh

جلب القائمة من Vars

عرّف قائمة القواميس كـ متغير، ثم كرّر عليها. ستبقى البيانات في مكان واحد، وتظل المهمة قصيرة وقابلة لإعادة الاستخدام.

vars:
  users:
    - { name: alice, group: admin }
tasks:
  - ansible.builtin.user:
      name: "{{ item.name }}"
    loop: "{{ users }}"

التكرار على قاموس فعلي

للتكرار على dict فعلي يتكون من أزواج مفتاح وقيمة، مرّره عبر المرشح dict2items لكي يصبح كل زوج عنصرًا يمكن التكرار عليه.

loop: "{{ ports | dict2items }}"

item.key وitem.value

بعد استخدام dict2items، يوفّر كل item كلاً من item.key وitem.value، أي اسم التعيين الأصلي وبياناته.

- ansible.builtin.debug:
    msg: "{{ item.key }} = {{ item.value }}"
  loop: "{{ settings | dict2items }}"

مفاتيح مختلطة واختيارية

لا يحتاج كل إدخال إلى كل مفتاح. ادمج loop مع المرشح default لكي تعود الحقول المفقودة إلى قيمة مناسبة.

shell: "{{ item.shell | default('/bin/sh') }}"

تحافظ القواميس على ترتيب البيانات

يؤدي تجميع الحقول المرتبطة لكل عنصر إلى إبقاء البيانات والمنطق منفصلين. ويعني تعديل مستخدم تعديل البيانات، لا المهمة نفسها.

لا تزال خاصية idempotency كاملة

كل تكرار لقاموس هو استدعاء مستقل للوحدة، لذلك يبلّغ Ansible عن changed أو ok لكل مستخدم، تمامًا كما يحدث مع القوائم البسيطة.

مناسبة جدًا للتهيئة المجمّعة

المستخدمون، والمضيفون الافتراضيون، وقواعد جدار الحماية: أي شيء يحتوي على عدة سمات لكل إدخال يناسبه تمامًا قائمة من القواميس.

تحقّق سريع

أنت تكرّر على قائمة من القواميس. كيف تقرأ حقلًا؟

مراجعة: التكرار على القواميس

كرّرت على قوائم من القواميس، وقرأت حقول item.name، واستخدمت dict2items مع الخرائط الفعلية. التالي: الحلقات المتداخلة. 🎉

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

هل درس «التكرار على القواميس» مجاني؟

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

ماذا ستتعلم في «التكرار على القواميس»؟

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

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

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

كم من الوقت يستغرق درس «التكرار على القواميس»؟

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

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

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

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

  1. الكلمة المفتاحية loop على قائمة
  2. التكرار على القواميس
  3. الحلقات المتداخلة باستخدام subelements
  4. loop_control: التسمية والفهرس والتوقّف المؤقت
← العودة إلى DevOps Bootcamp