0Pricing
Ansible Academy · درس

وحدة template وملفات .j2

انشر ملفًا مُصيّرًا إلى مضيف

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

الملفات الثابتة لا تكفي

تنقل وحدة copy الملف من دون تغيير. لكن ملفات الإعداد غالبًا ما تحتاج إلى منفذ أو اسم مضيف يختلف من خادم إلى آخر، لذلك لا تكفي النسخ الثابتة. 🤔

تعرّفوا إلى وحدة template

تعالج وحدة template الملف أولًا من خلال Jinja2، فتملأ المتغيرات، ثم تنسخ النتيجة إلى المضيف.

- name: Deploy config
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf

اصطلاح ‎.j2‎

تنتهي ملفات مصدر القوالب بالامتداد .j2 للدلالة على أنها تستخدم Jinja2. هذا اصطلاح متّبع وليس قاعدة إلزامية، لكن الجميع يلتزم به.

src وdest

يشير src إلى ملف ‎.j2‎ على عقدة التحكم، بينما يشير dest إلى المسار النهائي على المضيف المُدار.

template:
  src: app.conf.j2
  dest: /etc/app/app.conf

مكان وجود القوالب

يبحث Ansible افتراضيًا عن القوالب في مجلد templates بجوار playbook أو داخل role. لا حاجة إلى بادئة مسار.

templates/
  nginx.conf.j2
site.yml

قالب بسيط

يبقى النص العادي داخل ملف ‎.j2‎ كما هو، بينما تُستبدل العلامات {{ }}. هنا يتحول متغير المنفذ إلى رقم فعلي.

listen {{ http_port }};
server_name {{ domain }};

تعيين أذونات الملف

مثل copy، تقبل template الخيارات owner وgroup وmode، لذلك يصل الملف المعالَج مع الملكية الصحيحة.

template:
  src: app.conf.j2
  dest: /etc/app.conf
  mode: "0644"

التحقق قبل الكتابة

يشغّل الخيار validate أمر فحص على الملف المعالَج قبل تثبيته، لذلك لا يتم نشر إعداد معطوب.

template:
  src: sshd.j2
  dest: /etc/ssh/sshd_config
  validate: "sshd -t -f %s"

القوالب Idempotent

إذا تطابقت النتيجة المعالَجة مع الملف الموجود على المضيف، فستبلغ template بالحالة ok ولن تغيّر شيئًا. يمكن تشغيلها بأمان مرارًا وتكرارًا.

إخطار Handler عند التغيير

استخدموا template مع notify حتى لا تُعاد خدمة التشغيل إلا عندما يتغير ملف الإعداد فعلًا. هذا تطابق مثالي.

template:
  src: nginx.conf.j2
  dest: /etc/nginx/nginx.conf
  notify: restart nginx

template مقابل copy

استخدموا copy عندما يكون الملف نفسه في كل مكان، واستخدموا template عندما يجب أن يختلف أي جزء منه حسب المضيف.

تحقق سريع

تحتاجون إلى ملف إعداد يختلف منفذه من خادم إلى آخر. أي وحدة تناسب ذلك؟

مراجعة

تعرّفتم إلى وحدة template: فهي تعالج ملف ‎.j2‎ باستخدام Jinja2، وتضعه في dest، وتعيّن أذوناته، وتحافظ على خاصية Idempotent. ✨

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

هل درس «وحدة template وملفات .j2» مجاني؟

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

ماذا ستتعلم في «وحدة template وملفات .j2»؟

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

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

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

كم من الوقت يستغرق درس «وحدة template وملفات .j2»؟

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

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

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

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

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