تعرف على Ansible Playbook لأتمتة المهام

تعرف على Ansible Playbook لأتمتة المهام.


في السابق ، ناقشنا مقدمة Ansible ودليل التثبيت ، وبعد ذلك ، لنتحدث عن Playbook وكتل البناء الخاصة به.

ما هو Ansible Playbook?

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

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

لغة دليل التشغيل

كتب التشغيل هي ملفات بسيطة مكتوبة بلغة YAML.

YAML هي لغة تسلسل البيانات. إنها بشرية وقابلة للقراءة آليًا. لا تحتاج إلى أي مهارة خاصة في الترميز لكتابة رموز YAML. يمكنك التفكير في لغة تسلسل البيانات كمترجم لتحليل كل هيكل بياناتك وتسلسلها بترتيب يمكن إعادة بنائه مرة أخرى لاستخدامه لاحقًا. يمكنك استخدام بنية البيانات التي أعيد بناؤها في نفس البيئة أو حتى في بيئة مختلفة.

فيما يلي نموذج لملف YAML لتثبيت الخلية:


– الاسم: تثبيت MySQL
المضيفين: geekflare-mysql-service
مهام:
– الاسم: تثبيت MySQL
الإجراء: $ ansible_pkg_mgr pkg = mysql-server state = install
– الاسم: إضافة Python MySQL DB
الإجراء: $ ansible_pkg_mgr pkg = python-mysqldb state = install

أساسيات Ansible Playbook

يغطي هذا الجزء من المقالة المفاهيم الأساسية لـ Ansible لفهم المزيد حول Ansible Playbook.

المضيفون والمستخدمون

يحتاج Ansible إلى آلات مستهدفة في البنية التحتية التي يجب نشر المسرحيات عليها من Ansible playbook. تتم إضافة المضيفين إلى المخزون Ansible من خلال عناوين IP الخاصة بهم. المضيفون عبارة عن قائمة بمجموعة واحدة أو أكثر أو أنماط المضيف مفصولة بنقطتين. يحتوي remote_user على اسم حساب المستخدم.


– تستضيف: ProdServers
المستخدم عن بعد: geekflare

المتغيرات

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

على سبيل المثال ، port_01 هو متغير صالح ، بينما 01_post هو متغير غير صحيح. فيما يلي مثال للمتغيرات في Ansible Playbook:

فارس:
http_port: 80
أقصى عدد عملاء: 200

الاختبارات

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

يمكنك أيضًا تحديد متغير كجزء من قائمة الجرد. قوائم الجرد هي في النهاية قائمة بالأشياء التي تريد أتمتة عبرها.

[خوادم الويب]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

مهام

يلعب في مهام تشغيل plays ansible. المهمة هي المسؤولة عن تشغيل الوحدات النمطية المجهولة. في كل مرة ، يمكن تشغيل مهمة واحدة فقط ، ويتم تنفيذ المهام بترتيب تسلسلي. مهامهم مكتوبة بلغة YAML ، وهي إلى حد كبير اللغة الإنجليزية مثل اللغة.

على سبيل المثال: قم بتثبيت اسم_الحزمة ، تحديث اسم_البرنامج ، إلخ. فيما يلي مثال لمهمة في Ansible playbook لتثبيت httpd:

مهام:
– الاسم: قم بتثبيت حزمة httpd
yum: name = httpd state = الأحدث

معالجات

معالجات نوع خاص من المهام.

يمكن تشغيلها بواسطة مهمة ويتم تشغيلها مرة واحدة في نهاية المسرحية. يتم استخدامه لإرسال إخطارات إذا كان هناك أي تغيير في ملف التكوين ، على سبيل المثال ، إخطار الخدمة لبدء اباتشي بمجرد تثبيته. يتم استخدام بناء جملة “إعلام” لاستدعاء المعالجات. فيما يلي مثال على معالج لإعادة تشغيل apache:


– تستضيف: الكل
مهام:
– الاسم: تأكد من أن أباتشي في أحدث إصدار
yum: name = httpd state = الأحدث
يخطر:
– إعادة تشغيل اباتشي
– الاسم: تأكد من تشغيل أباتشي (وتمكينه عند التمهيد)
الخدمة: name = httpd state = تم تمكينها = نعم
معالجات:
– الاسم: إعادة تشغيل اباتشي
الخدمة: name = httpd state = تم إعادة التشغيل

قم بإنشاء وتشغيل أول Playbook الخاص بك

دعني أخبرك بكيفية كتابة كتاب اللعب. يبدأ كل دليل تشغيل بثلاث شرطات (-) في الأعلى.

أول شيء تذكره في Ansible Playbook هو الأجهزة المضيفة التي تريد تشغيل دليل التشغيل عليها.

ثم يمكنك ذكر المتغيرات من خلال جمع الحقائق ؛ ثم يمكنك ذكر المهام المختلفة التي تريد القيام بها. الآن ، تذكر أن المهمة يتم تنفيذها بنفس الترتيب الذي تكتبه به. على سبيل المثال ، تريد تثبيت البرنامج A أولاً ثم البرنامج B ، تأكد من أن المهمة الأولى المكتوبة في دليل التشغيل هي تثبيت البرنامج A ويمكن للمهمة التالية تثبيت البرنامج B.

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

دعني أوضح لك كيفية إنشاء دليل تشغيل غير مرئي لتثبيت nginx وبدء تشغيله على مضيف وبدء تشغيله.

قم بإنشاء ملف .yml حيث ستضع رموز YAML الخاصة بك لإنشاء كتيب تشغيل غير مرئي.

gedit nginx.yml

ضع رمز YAML أدناه في هذا الملف واحفظ الملف.


– تستضيف: العميل
sudo: نعم
فارس:
– خادم_الملف: 8080

مهام:
– الاسم: تثبيت خادم الويب nginx
apt: pkg = nginx state = المثبتة update_cache = true
يخطر:
– بدء nginx

معالجات:
– الاسم: بدء nginx
الخدمة: name = nginx state = بدأت

يبدأ ملف YAML أعلاه بالمضيفين ، وأريد تشغيل دليل التشغيل هذا على جهاز العميل (Client). تم حفظ عنوان IP الخاص بالعميل بالفعل في ملف / etc / ansible / hosts.

يسمح السطر التالي بتشغيل المهام بامتيازات sudo.

ثم قمت بتعريف server_port كمتغير في كتاب التشغيل هذا.

ثم تأتي مهمتي الأولى في هذا playbook ansible لتثبيت خادم ويب Nginx. تحتوي هذه المهمة أيضًا على معلمة إعلام ، مما يعني بعد تشغيل هذه المهمة معالج يعمل.

أخيرًا ، لقد كتبت معالجًا لبدء nginx على جهاز العميل.

الآن بعد أن أصبحت واضحًا مع رموز YAML في كتاب التشغيل المجهول ، فلنشغل دليل التشغيل. فيما يلي بناء الجملة لتشغيل كتاب تشغيل غير مرئي:

ansible-playbook file_name.yml

الآن ، سأقوم بتشغيل playbook المجهول ، الذي أقوم بإنشائه لتثبيت وبدء nginx.

[البريد الإلكتروني محمي]: / home / geekflare # ansible-playbook nginx.yml

PLAY [Client] ********************************************** ******************** ********************

مهمة [جمع الحقائق] ********************************************* ************ ************
حسنًا: [node1]

المهام [تثبيت خادم ويب nginx] ******************************************* ****

تم التغيير: [node1]

RUNNING HANDLER [start nginx] ******************************************** ******
حسنًا: [node1]

PLAY RECAP ************************************************ *********************
node1: موافق = 3 تم تغييره = 1 لا يمكن الوصول إليه = 0 فشل = 0 تم تخطيه = 0 تم إنقاذه = 0 تم تجاهله = 0

شغّل الأمر أدناه للتحقق مما إذا تم تثبيت خادم nginx وبدء تشغيله بشكل صحيح بواسطة دليل التشغيل غير المرئي.

[البريد الإلكتروني محمي]: / home / geekflare # ps waux | grep nginx
root 3021 0.0 0.0 77676 1516؟ Ss 15:27 0:00 nginx: عملية رئيسية / usr / sbin / nginx -g daemon قيد التشغيل ؛ عملية رئيسية على

استنتاج

كان ذلك عن Ansible playbook. آمل أن تكون هذه المقالة قد ساعدتك على تعلم كيف يمكنك إنشاء وتشغيل Ansible playbook. ألق نظرة على هذا دورة, إذا كنت ترغب في تعلم مواضيع متقدمة في Ansible ، بما في ذلك الأدوار و Jinja2 و Lookups و Filter و Custom Modules.

العلامات:

  • Ansible

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map