Ansible Tutorial - تعلم أن تكتب Playbooks



في هذه المدونة التعليمية Ansible Tutorial سوف تتعلم كيفية كتابة كتب اللعب Ansible والأوامر المخصصة وتنفيذ التدريب العملي لنشر Nginx على جهازك المضيف.

أنسبل تعليمي

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

اسمحوا لي أن أقدم لكم لمحة عامة عن هذا 'البرنامج التعليمي غير المرئي':





Ansible Playbook Tutorial | تدريب DevOps | إدوريكا

Ansible Tutorial - كتابة Ansible Playbooks

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



بالنسبة إلى Ansible ، يبدأ كل ملف YAML تقريبًا بقائمة. كل عنصر في القائمة عبارة عن قائمة بأزواج المفاتيح / القيم ، والتي تسمى عادةً 'التجزئة' أو 'القاموس'. لذلك ، نحتاج إلى معرفة كيفية كتابة القوائم والقواميس في YAML.

جميع أعضاء القائمة عبارة عن أسطر تبدأ من نفس مستوى المسافة البادئة التي تبدأ بعلامة '-' (شرطة ومسافة). من الممكن إنشاء هياكل بيانات أكثر تعقيدًا ، مثل قوائم القواميس أو القواميس المختلطة التي تكون قيمها عبارة عن قوائم أو مزيج من كليهما.

على سبيل المثال للحصول على قائمة الأقسام في Edureka:



الأقسام: - تسويق - مبيعات - حلول - كتابة محتوى - دعم - منتج

الآن دعني أعطيك مثالا على القاموس:

-الولايات المتحدة -القارة: أمريكا الشمالية -العاصمة: واشنطن العاصمة- عدد السكان: 319 مليون

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

لكل لعبة في كتاب اللعب ، يمكنك اختيار الأجهزة الموجودة في بنيتك الأساسية لاستهدافها وأي مستخدم بعيد لإكمال المهام. لتضمين المضيفين في مخزون Ansible ، سنستخدم عناوين IP للأجهزة المضيفة.

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

المتغيرات:

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

يحدد Ansible بالفعل مجموعة غنية من المتغيرات الفردية لكل نظام. عندما يتم تشغيل Ansible على نظام ، يتم جمع جميع الحقائق والمعلومات حول النظام وتعيينها كمتغيرات.

ولكن هناك ملف قاعدة لتسمية المتغيرات. يجب أن تكون أسماء المتغيرات أحرفًا وأرقامًا وشرطات سفلية. يجب أن تبدأ المتغيرات دائمًا بحرف. على سبيل المثال wamp_21 ، المنفذ 5 هو أسماء متغيرات صالحة ، بينما 01_port ، _ server غير صالحين.

مهام:

تتيح لك المهام تقسيم أجزاء من سياسة التكوين إلى ملفات أصغر. تتضمن المهمة سحب من الملفات الأخرى. تتوافق المهام في Ansible مع المعنى الإنجليزي لها.

على سبيل المثال: التثبيت والتحديث وما إلى ذلك.

معالجات:

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

اسمح لي أن أقدم لك مثالاً على كتاب التشغيل الذي سيبدأ برنامج خادم Apache httpd:

--المضيفين: خوادم الويب ملك من: http_port: 80 أقصى عدد من العملاء: 200 remote_user: جذر مهام: - اسم: تأكد من أن apache في أحدث إصدار يم: الاسم = حالة httpd = الأحدث - اسم: اكتب ملف التكوين اباتشي قالب: src = / srv / httpd.j2 dest = / etc / httpd.conf يخطر: - إعادة تشغيل اباتشي - اسم: تأكد من تشغيل apache (وقم بتمكينه عند التمهيد) الخدمات: name = httpd state = تم بدء التمكين = نعم معالجات: - اسم: إعادة تشغيل اباتشي الخدمات: الاسم = حالة httpd = إعادة التشغيل

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

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

تعليمي أنسبل - وحدات

الوحدات النمطية في Ansible عاطلة عن العمل. من وجهة نظر خدمة RESTful ، لكي تكون العملية (أو استدعاء الخدمة) غير فعالة ، يمكن للعملاء إجراء نفس المكالمة بشكل متكرر أثناء إنتاج نفس النتيجة. بمعنى آخر ، فإن إجراء عدة طلبات متطابقة له نفس تأثير تقديم طلب واحد.

هناك أنواع مختلفة من الوحدات في أنسبل

  • وحدات أساسية
  • الوحدات الإضافية

وحدات أساسية

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

يتم استضافة مصدر هذه الوحدات بواسطة Ansible على GitHub في Ansible-modules-core.

الوحدات الإضافية

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

يمكن ترقية الوحدات 'الإضافية' الشائعة إلى وحدات أساسية بمرور الوقت.

يستضيف Ansible على GitHub مصدر هذه الوحدات في الإضافات Ansible-modules-extras.

على سبيل المثال: إحدى الوحدات الإضافية في وحدات الإدارة عن بُعد هي وحدة ipmi_power ، والتي تعد مديرًا للطاقة للأجهزة البعيدة. يتطلب تشغيل python 2.6 أو أحدث و pyghmi للتشغيل.

يمكنك استخدام هذه الوحدة عن طريق كتابة أمر خاص مثل الأمر الذي كتبته أدناه:

ipmi_power: name = 'test.domain.com' user = كلمة مرور 'localhost' = 'xyz' state = 'on'

دروس غير قابلة للتطبيق - إرجاع القيم

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

بعض الأمثلة على قيم الإرجاع هي:

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

برنامج تعليمي غير صالح - أوامر مخصصة

أوامر Adhoc هي أمر بسيط من سطر واحد لتنفيذ بعض الإجراءات. الوحدات النمطية التي تعمل بأوامر Ansible هي أوامر خاصة.

c vs c ++ vs java

على سبيل المثال:

مضيف غير قابل للإلغاء -m netscaler -a 'nsc_host = nsc.example.com user = apiuser password = apipass' 

يستخدم الأمر adhoc أعلاه وحدة netscaler لتعطيل الخادم. هناك المئات من الوحدات النمطية المتوفرة في Ansible حيث يمكنك الرجوع إلى الأوامر الخاصة وكتابتها.

حسنًا ، بما يكفي مع كل التفسيرات النظرية ، دعني أشرح لك Ansible ببعض التدريب العملي.

أنسبل تعليمي - تجريب

سأقوم بكتابة كتاب التشغيل لتثبيت Nginx على جهاز العقدة / الجهاز المضيف.

هيا نبدأ :)

الخطوة 1: اتصل بمضيفيك باستخدام SSH. لذلك ، تحتاج إلى إنشاء مفتاح SSH عام.

استخدم الأمر أدناه:

ssh-كجن

إنشاء مفتاح Ssh - تعليمي Ansible - Edureka

كما ترى في اللقطة أعلاه ، فإن الأمر ssh-كجن إنشاء مفتاح SSH عام.

الخطوة 2: مهمتك التالية هي نسخ مفتاح SSH العام على مضيفيك. للقيام بذلك ، استخدم الأمر أدناه:

ssh-copy-id -i root @

توضح اللقطة أعلاه أن مفتاح SSH يتم نسخه إلى المضيفين.

الخطوه 3: ضع قائمة بعناوين IP للمضيفين / العقد في مخزونك.

استخدم الأمر التالي:

vi / etc / ansible / hosts

سيؤدي هذا إلى فتح محرر vi حيث يمكنك سرد عناوين IP لمضيفيك. هذا هو مخزونك الآن.

الخطوة الرابعة: فلنبدأ الأمر ping للتأكد من إنشاء اتصال.

hashmap vs hashtable in java

تؤكد اللقطة أعلاه أنه تم إجراء اتصال بين جهاز التحكم والمضيف.

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

السادس

تُظهر اللقطة أدناه كتاب التشغيل الخاص بي لتثبيت Nginx المكتوب بتنسيق YAML.

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

متغير server_port تم ضبطه على الاستماع على منفذ TCP 8080 للطلبات الواردة.

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

المهمة التالية هي تكوين Nginx.في Nginx ، تحتوي السياقات على تفاصيل التكوين.

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

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

الآن ، احفظ الملف واخرج.

الخطوة السادسة: دعنا الآن نشغل دليل التشغيل هذا ، باستخدام الأمر أدناه:

ansible-playbook .yml

يمكننا أن نرى في لقطة الشاشة أعلاه أن مهمتنا هي تثبيت Nginx المنفذ.

الخطوة السابعة: لنتحقق مما إذا كان Nginx مثبتًا على الجهاز المضيف. استخدم الأمر أدناه:

ps waux | grep nginx

يمكنك أن ترى في لقطة الشاشة أعلاه ، أن معرفات العمليات المختلفة 3555 و 103316 قيد التشغيل مما يضمن تشغيل Nginx على الأجهزة المضيفة.

تهانينا! لقد نجحت في نشر Nginx على مضيفك باستخدام كتب اللعب Ansible. آمل أن تكون قد استمتعت بقراءة مدونة Ansible Tutorial هذه. يرجى إعلامي إذا كان لديك أي استفسارات في قسم التعليقات أدناه.

إذا وجدت هذا ' أنسبل تعليمي ' ذو صلة، تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تساعد الدورة التدريبية لشهادة Edureka DevOps المتعلمين على اكتساب الخبرة في عمليات وأدوات DevOps المختلفة مثل Puppet و Jenkins و Ansible و Nagios و Git لأتمتة خطوات متعددة في SDLC.