حرف Y

لغة تسلسل البيانات (YAML)

YAML

آخر تحديث: 2026-10-08
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أنك تريد كتابة قائمة مشتريات أو تعليمات واضحة لصديقك لترتيب غرفة؛ ستكتبها في نقاط مرتبة تحت بعضها مع ترك مسافات بادئة لتوضيح العناصر الفرعية بدون تعقيد. لغة تسلسل البيانات (YAML) تتبع نفس هذه الفكرة تماماً، ولكنها مخصصة لأجهزة الكمبيوتر في نظام لينكس (Linux). هي طريقة كتابة بسيطة جداً تشبه اللغة العادية التي نقرؤها يومياً، وتُستخدم لكتابة ملفات الإعدادات (Configuration Files) التي تخبر البرامج كيف تعمل. بدلاً من استخدام رموز معقدة وأقواس كثيرة تربك العين، تعتمد هذه اللغة على المسافات الفارغة في بداية كل سطر لترتيب المعلومات، مما يجعل قراءتها وتعديلها أمراً سهلاً للغاية حتى لغير المبرمجين.

الشرح التقني المتقدم

تعد لغة تسلسل البيانات (YAML) حجر الزاوية في إدارة الأنظمة الحديثة وأتمتة البنية التحتية في بيئة لينكس (Linux). صُممت هذه الصيغة لتكون سهلة القراءة للبشر في المقام الأول، وتُستخدم على نطاق واسع في كتابة ملفات الإعدادات (Configuration Files) لأدوات الأتمتة وإدارة الحاويات (Containers) والشبكات.

التركيب الهيكلي وقواعد الصياغة الأساسية

تعتمد البنية الداخلية للغة على تمثيل البيانات في شكل هرمي يعتمد كلياً على المسافات البادئة (Indentation) بدلاً من الأقواس أو الوسوم:

الأزواج المفتاحية (Key-Value Pairs): الوحدة الأساسية لتمثيل البيانات، حيث يتم فصل المفتاح عن القيمة بنقطتين رأسيتين متبوعتين بمسافة إجبارية مثل port: 8080.

القوائم (Lists): تُستخدم لتمثيل مجموعة من العناصر المتسلسلة تحت مفتاح واحد، ويبدأ كل عنصر بشرطة متبوعة بمسافة.

القواميس المتداخلة (Dictionaries): تسمح بتجميع إعدادات متعددة تحت كائن واحد عبر زيادة المسافة البادئة بمقدار مسافتين أو أربع مسافات بشكل متناسق في كامل الملف.

التطبيق العملي وفحص الملفات في لينكس (باستخدام أداة yamllint)

في بيئات الإنتاج مثل إدارة الشبكات عبر أداة netplan أو تشغيل الحاويات عبر docker-compose، قد يؤدي خطأ بسيط في المسافات إلى تعطل الخدمة بالكامل. لذلك يُنصح بإنشاء الملف وفحصه برمجياً قبل تطبيقه:

أمر إنشاء ملف إعدادات وفحصه عبر الطرفية (Terminal):

cat << 'EOF' > config.yaml
server:
  host: 127.0.0.1
  ports:
    - 80
    - 443
EOF
yamllint config.yaml && yq '.server.ports' config.yaml

توضيح للأدوات والخيارات المستخدمة في إدارة ومعالجة الملفات:

- الأداة yamllint: تقوم بفحص الملف للتأكد من خلوه من أخطاء الصياغة (Syntax Errors) والتحقق من صحة المسافات البادئة قبل تشغيل الخدمة.

- الأداة yq: معالج سطر أوامر قوي يعمل بطريقة مشابهة لأداة jq، ويُستخدم لاستخراج القيم أو تعديل ملفات .yaml مباشرة من خلال السكربتات (Scripts).

- قاعدة المسافات الصارمة: يمنع النظام استخدام زر الجدولة (Tab) نهائياً في الهيكلة، ويجب الاعتماد حصرياً على زر المسافة العادية (Space) لتجنب فشل قراءة الملف من قِبل المحلل (Parser).

ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)

عند العمل المكثف على خوادم لينكس عبر محررات النصوص الطرفية مثل vim أو nano، قم دائماً بضبط إعدادات المحرر لتحويل ضغطات زر الجدولة إلى مسافات تلقائياً (Expand Tabs to Spaces) وتحديدها بمسافتين فقط، فهذا الإجراء البسيط يختصر ساعات من البحث عن أخطاء الهيكلة غير المرئية.

المصادر المعتمدة :