Ansible Academy · درس

الحلقات وكتل if في القوالب

أنشئ أقسام إعداد متكررة

الدرس 3 من 413 خطوة

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

المنطق داخل {% %}

إضافة إلى طباعة القيم، يشغّل Jinja2 منطق التحكم داخل العلامات {% %}. هكذا ينشئ قالب واحد عدة أسطر. 🔁

حلقة for أساسية

استخدموا حلقة for لتكرار الأسطر على قائمة. ينتج كل عنصر كتلة أخرى من النص المعالَج.

{% for host in backends %}
server {{ host }};
{% endfor %}

أغلقوا كتلَكم دائمًا

تحتاج كل علامة افتتاحية إلى علامة إغلاق: تنهي endfor الحلقة، تمامًا كما تنهي endif الشرط. يؤدي نسيانها إلى فشل المعالجة.

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

استعرضوا أزواج القاموس باستخدام .items()، مع التقاط كل مفتاح وقيمة لإنشاء إعداد منظم.

{% for key, val in settings.items() %}
{{ key }} = {{ val }}
{% endfor %}

متغير loop

يمنحكم Jinja2 داخل الحلقة loop.index للعدّ الحالي، كما يوفر loop.first أو loop.last كقيم منطقية مفيدة.

{% for s in servers %}
server{{ loop.index }} {{ s }};
{% endfor %}

كتلة if بسيطة

تعالج كتلة if محتواها فقط عندما يكون الشرط صحيحًا، لذلك لا يظهر الإعداد الاختياري إلا عند الحاجة.

{% if enable_ssl %}
ssl on;
{% endif %}

if وelif وelse

سلسلوا الاختيارات باستخدام elif وelse نهائية. تُعالج كتلة واحدة فقط، تمامًا كما في Python.

{% if env == 'prod' %}
level = warn
{% else %}
level = debug
{% endif %}

الشروط داخل الحلقات

ضعوا if داخل for لمعالجة العناصر المطابقة فقط، مثل تخطي الخوادم المعطّلة في مجموعة.

{% for h in hosts %}
{% if h.enabled %}
server {{ h.ip }};
{% endif %}
{% endfor %}

التحكم في المسافات البيضاء

قد تترك الحلقات أسطرًا فارغة. تعمل الشرطة مثل {%- -%} على حذف المسافات البيضاء المحيطة للحصول على مخرجات مرتبة.

{%- for h in hosts -%}
{{ h }}
{%- endfor -%}

كتلة else في حلقة for

يمكن أن تحتوي for على else لا تُشغَّل إلا عندما تكون القائمة فارغة، وهي مثالية لسطر بديل مناسب.

{% for h in backends %}
server {{ h }};
{% else %}
# no backends defined
{% endfor %}

علامات الطباعة مقابل علامات المنطق

احرصوا على التمييز بينهما: تطبع {{ }} قيمة، بينما تتحكم {% %} في التدفق من دون أن تطبع شيئًا بنفسها.

تحقق سريع

تريدون تكرار سطر إعداد لكل مضيف في قائمة. أي علامة تبدأ تلك الحلقة؟

مراجعة

يمكنكم الآن التكرار باستخدام for، والتفرّع باستخدام if، وقراءة loop.index، وتداخل الكتل، وحذف المسافات البيضاء. أصبح قالب واحد يكتب إعدادًا ديناميكيًا. ✨

البدء مجانًا

تعلم YAML مع معلم ذكاء اصطناعي — مجانًا

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

الدورات
30
الدروس
120

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

هل درس «الحلقات وكتل if في القوالب» مجاني؟

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

ماذا ستتعلم في «الحلقات وكتل if في القوالب»؟

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

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

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

كم من الوقت يستغرق درس «الحلقات وكتل if في القوالب»؟

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

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

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

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

  1. وحدة template وملفات .j2
  2. المتغيرات والتعبيرات في Jinja2
  3. الحلقات وكتل if في القوالب
  4. المرشحات: default وjoin وupper
← العودة إلى Ansible Academy