كيفية استخدام العلامات في Ansible

Kyfyt Astkhdam Al Lamat Fy Ansible



المسرحيات والأدوار والمهام هي البنية غير المرغوبة وهذه البنية غير المرغوبة تحتوي على السمة المهمة التي تسمى العلامات في Ansible. عندما نطلق كتاب قواعد اللعبة في Ansible ، يمكنك استخدام الأمرين -tags و –skip tags حتى نتمكن من تنفيذ سلسلة معينة فقط من المهام والمسرحيات والأدوار. إذا كان لدينا دليل يحتوي على العديد من المهام ، ولكننا لا نريد تنفيذ جميع مهام دليل التشغيل ، فبدلاً من تنفيذ قواعد اللعبة بالكامل ، سنقوم فقط بتشغيل بعض المهام باستخدام أمر العلامة في دليل اللعب Ansible.

سنناقش العلامات في هذا الموضوع ، والتي تعد واحدة من أهم جوانب Ansible. سنحاول شرح ماهية العلامات وكيف تعمل العلامات في Ansible لأن هذه ميزة محيرة لمنصة Ansible.







على سبيل المثال ، قد يحتوي دليل التشغيل على ثلاث مسؤوليات: تثبيت الوحدة النمطية وتكوينها والتحقق من حالة الوحدة النمطية المنشورة ، مثل ما إذا كانت الخدمة قيد التشغيل ويمكن الوصول إليها. نظرًا لأننا نحتاج ببساطة إلى رؤية حالة الوحدات النمطية على عدد قليل من الأجهزة البعيدة ، فإننا نستخدم علامات Ansible في هذه الحالة بدلاً من تنفيذ جميع المهام في كتاب اللعب. إنها تمكننا من تشغيل عملية معينة حصريًا ، مما يسمح لنا بتقليل وقت التشغيل عن طريق الاحتفاظ بجميع الأنشطة ذات الصلة في دليل واحد.



المتطلبات الأساسية لاستخدام العلامات في Ansible Playbook

لوضع الأمثلة العملية في البرنامج الثابت ، يجب أن نفي بالمتطلبات التالية.



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





سنهدف إلى استخدام سيناريوهات مختلفة لفحص عدد قليل من علامات Ansible حتى يتمكن المتعلم من فهم مفهوم العلامات في كتاب اللعب Ansible بسهولة.

مثال 01: الوصول إلى مهمة واحدة في Ansible Playbook

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



[root @ master ansible] # nano ansible_tags.yml

بعد إنشاء وتشغيل ansible_tags.yml playbook. الآن سنبدأ في كتابة الأوامر في كتاب التشغيل. أولاً ، سنمرر المضيفات المقدمة في معلمة 'hosts' التي سنستخدمها 'localhost'. بعد ذلك ، سنكتب القيمة 'false' في معلمة 'collect_facts' حتى لا نتمكن من الحصول على معلومات إضافية حول المضيف المحلي عند تنفيذ كتاب التشغيل.

بعد ذلك ، سنبدأ في سرد ​​الأنشطة ضمن معلمة 'المهام' واحدة تلو الأخرى التي نريد تنفيذها. سنحدد ما إذا كان المستند موجودًا على جهاز المضيف المحلي في العملية الأولى. إذا كان متاحًا ، فسوف نقوم بتخزينه في معلمة 'Register' ثم سنمنح الاسم الفريد للعلامة بحيث يكون من السهل علينا الوصول إلى العلامة عند تنفيذ كتاب التشغيل. في المهمة الثانية ، سنفعل الشيء نفسه الذي فعلناه في المهمة الأولى ، ولكن يجب أن تكون العلامة فريدة ومن ثم سنستخدم خيار التصحيح لعرض المهمة جنبًا إلى جنب مع الرسالة ذات الصلة.

- المضيفون:

- مضيف محلي
التجمع: خطأ


مهام:
- الاسم: تحقق من وجود الملف x`
stat: المسار =. / host.yml
التسجيل: fileExists
العلامات: check_file


- تصحيح:
msg: '{{'الملف موجود' إذا fileExists.stat.exists else 'لم يتم العثور على الملف'}}'
العلامات: check_file


- الاسم: تحقق من إمكانية وصول المستخدم الحالي إلى host.yml
قذيفة: stat -c '٪ a' ./host.yml
التسجيل: accessPath
العلامات: check_access


- تصحيح:
msg: '{{'يمكن الوصول إلى الملف' إذا (accessPath.stdout | int) <660 else 'File not access is'}}'
العلامات: check_access

الآن ، سنحفظ كتاب التشغيل ثم نغلقه. نريد تشغيل ansible_tags.yml playbook لذلك سنكتب الأمر التالي في محطة Ansible لعرض المخرجات للمستخدمين.

[root @ master ansible] # ansible-playbook ansible_tags.yml –tags check_file

بعد تشغيل الأمر أعلاه ، سنحصل على الناتج المطلوب في المقابل. كما هو موضح أدناه ، يتم تنفيذ مهمة واحدة فقط ويتم عرضها في الإخراج وهو 'التحقق من وجود الملف'.

مثال 02: تجاهل علامة معينة في Ansible Playbook

هذا هو المثال الثاني لعلامة Ansible حيث سنذهب إلى علامة 'تخطي'. الأمر متروك لك فيما إذا كنت تريد تجاهل جميع المهام أو تريد تجاهل مهمة معينة من قواعد اللعبة في Ansible. نحن نستخدم تطبيق المثال 1 وبعد ذلك سنتخطى المهمة ببساطة عن طريق كتابة العبارة أدناه في محطة Ansible.

[root @ master ansible] # ansible-playbook ansible_tags.yml - ملف skip-tags check_file

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

المثال 03: استمر دائمًا في تشغيل المهمة في Ansible Playbook

سنقوم بتنفيذ المثال الثالث بناءً على علامة Ansible. في هذا المثال ، سنستخدم علامة 'دائمًا' والتي تعني أن علامة معينة سيتم تنفيذها دائمًا في Ansible Playbook. لتشغيل دليل التشغيل ، استخدم الأمر التالي:

[root @ master ansible] # nano ansible_tags.yml

في دليل التشغيل ، أنشأنا مهامًا متعددة للتشغيل ولكننا مررنا علامة 'دائمًا' في المهمة الأخيرة وهي 'حذف كلمة المرور من المخزون'. فيما يلي الأمر الذي تم تنفيذه في دليل التشغيل:

- المضيفون: الكل

التجمع: خطأ


مهام:
- الاسم: تحقق من وجود الملف
stat: المسار =. / host.yml
التسجيل: fileExists
مندوب_تو: مضيف محلي
العلامات: check_file


- تصحيح:
msg: '{{'الملف موجود' إذا fileExists.stat.exists else 'لم يتم العثور على الملف'}}'
العلامات: check_file


- الاسم: تحقق من إمكانية وصول المستخدم الحالي إلى host.yml
قذيفة: stat -c '٪ a' ./host.yml
التسجيل: accessPath
مندوب_تو: مضيف محلي
العلامات: check_access


- تصحيح:
msg: '{{'يمكن الوصول إلى الملف' إذا (accessPath.stdout | int) <660 else 'File not access is'}}'
العلامات: check_access


- الاسم: حذف كلمة المرور من المخزون
ملف سطر:
المسار: '{{المخزون_الملف}}'
regexp: '\ b {{item}}. * \ b'
الدولة: غائب
مندوب_تو: مضيف محلي
تصبح: خطأ
العلامات: دائمًا
مع_العناصر:
- ansible_password

بعد ذلك ، سننشئ ملف الجرد لبناء اتصال بين وحدة التحكم والمضيف البعيد الهدف. يوجد أدناه الأمر:

[جذر @ سيد ansible] # مضيف نانو

هذا هو ملف الجرد الذي يحتوي على المعلومات المتعلقة بـ “Linux_host” في Ansible.

الجميع:

المضيفون:
مضيف Linux:
ansible_host: 192.168.3.229
ansible_user: غير صالح
ansible_password: ******
ansible_connection: ssh
ansible_port: 22

للحصول على الإخراج المطلوب ، سنقوم بتشغيل الأمر التالي في محطة Ansible:

[root @ master ansible] # ansible-playbook ansible_tags.yml - العلامات check_file -i host.yml

خاتمة

تم شرح العلامات في Ansible في هذه المقالة. نحن الآن نفهم وظيفة العلامات والأماكن في Ansible حيث سنطبقها. لمساعدة المتعلم على فهم مفهوم علامات Ansible ، قمنا بتطوير مجموعة متنوعة من الأمثلة.