في هذا البرنامج التعليمي، سوف نتعلم كيفية استخدام هذه الوحدة التي تسمح لنا بتنظيم تكوينات Ansible الخاصة بنا إلى وحدات أكثر منطقية ونظيفة يسهل إعادة استخدامها وصيانتها.
المتغيرات غير القابلة للقياس
افتراضيًا، نقوم بشكل أساسي بتعريف المتغيرات داخل قواعد اللعبة. ومع ذلك، عندما تصبح قواعد اللعبة أكثر تعقيدًا، قد تحتاج إلى الحفاظ على مستوى معين من التنظيم والصيانة داخلها. هذا هو المكان الذي تأتي فيه وحدة include_vars للمساعدة.
باستخدام هذه الوحدة، يمكننا فصل المتغيرات إلى ملفات محددة يمكننا استيرادها وإعادة استخدامها حسب الضرورة. وهذا مفيد بشكل خاص عند العمل في بيئات مختلفة مثل الإنتاج والتجهيز وما إلى ذلك حيث قد تختلف المتطلبات.
مزايا وحدة Include_Vars
فيما يلي بعض المزايا الواضحة لفصل المتغيرات إلى ملفات محددة:
فصل المنطق والبيانات – تتيح لنا وحدة include_vars إبقاء أدلة التشغيل موجزة عن طريق فصل المهام عن بيانات التكوين.
التكوينات الخاصة بالبيئة – يتيح لنا فصل المتغيرات استخدام ملفات متغيرة مختلفة لبيئات أو مضيفين مختلفين.
تقليل الازدواجية – يسمح لنا بتجنب تحديد نفس المتغيرات في أماكن متعددة.
غير مقبول بناء جملة Include_Vars
يوضح ما يلي بناء الجملة الأساسي لوحدة include_vars ضمن قواعد اللعبة Ansible:
- الاسم: تضمين متغيرات من ملفinclude_vars:
الملف: file_path
مثال للاستخدام:
دعونا نستكشف بعض الأمثلة الأساسية لتكوين الوحدة include_vars والعمل معها في دليل التشغيل.
مثال 1: الاستخدام الأساسي
لنفترض أن لدينا تخطيط الدليل كما هو موضح في ما يلي:
.├── playbook.yml
└── الذي
└── db_config.yml في الدليل الجذر، لدينا قواعد اللعبة الفعلية التي نرغب في تنفيذها. لدينا أيضًا ملف 'db_config.yml' ضمن دليل vars والذي نستخدمه لتحديد المتغيرات المطلوبة لتكوين قاعدة البيانات.
بعد ذلك، في الملف var/db_config.yml، لدينا المتغيرات التالية:
db_user: الجذرdb_password: الخلية
لاستخدام المتغيرات السابقة في دليل التشغيل، يمكننا استخدام وحدة include_vars كما هو موضح في مثال دليل التشغيل التالي:
---- المضيفون: الكل
مهام:
- الاسم: تضمين تكوين قاعدة البيانات
include_vars:
الملف: vars/db_config.yml
- الاسم: طباعة مستخدم قاعدة البيانات
التصحيح:
msg: 'مستخدم قاعدة البيانات هو {{ db_user }}'
المثال 2: تضمين كافة الملفات في الدليل
يمكننا أيضًا تضمين كافة الملفات ضمن دليل معين كما هو موضح في المثال التالي:
---- المضيفون: الكل
مهام:
- الاسم: يشمل كافة التكوينات
include_vars:
أنت: فار
يجب أن يتضمن هذا كافة المتغيرات التي تم تعريفها في كافة الملفات ضمن الدليل vars.
مثال 3: تحميل المتغيرات بشكل مشروط
يمكننا أيضًا استخدام معلمات متنوعة لتضمين المتغيرات التي تطابق شرطًا معينًا كما هو موضح في ما يلي:
---- المضيفون: الكل
لمن:
البيئة: التدريج
مهام:
- الاسم: تضمين التكوين الخاص بالبيئة
include_vars:
الملف: 'vars/{{ env }}.yml'
في هذه الحالة، نقوم بتحميل 'staging.yml' كما هو محدد في دليل التشغيل السابق.
خاتمة
لقد تعلمت عن وحدة Ansible include_vars التي تسمح لنا بتحميل المتغيرات التي تم تعريفها في ملف أو دليل محدد. يمكنك التحقق من الوثائق لمزيد من التحكم الدقيق.