التزويد الثابت: طريقة أكثر ذكاءً وبلا مجهود للتزويد



تشير مدونة Ansible Provisioning هذه إلى إحدى أكثر ميزات Ansible فائدة. إنه يوضح كيفية إعداد حزمة LAMP واستضافة موقع wensite على Ubuntu.

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

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





الموضوعات التي يتم تناولها هي:

إذا كنت ترغب في إتقان DevOps ، ' يجب أن تكون الدورة التدريبية هي الخيار المفضل لديك.



ما هو أنسبل؟

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

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

ما الذي يمكن أن أتمتة Ansible؟

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



  1. التزويد: من الضروري إنشاء بيئة مناسبة للتطبيق / البرنامج للعيش. يوفر Ansible طريقة لأتمتة البيئة التي تم إنشاؤها لوجود التطبيق.
  2. إدارة التكوين: قم بإجراء مجموعة متنوعة من مهام التكوين ، مثل خدمات البدء / الإيقاف ، وتغيير تكوين نظام أو جهاز أو تطبيق ، إلخ.
  3. نشر التطبيق: أتمتة تحديد النشر باستخدام Ansible وإدارة النشر باستخدام برج أنسبل . هذا يجعل دورة التطبيق بأكملها من الإنتاج إلى النشر فعالة وقابلة للإدارة.
  4. التسليم المستمر: يمكن أن يصبح إنشاء خط أنابيب للتكامل / التسليم المستمر وإدارته مرهقًا. هذا هو المكان الذي يتدخل فيه Ansible ويجعل حياة المطور أسهل.
  5. الأمان والامتثال: العمل مع المشاريع ، يضع دائمًا الحدود ويتكامل مع سياسات أمان الشركة. يمكن أن يؤدي دمج سياسات الأمان تلقائيًا مع النشر إلى تسهيل الامتثال للسياسات.
  6. تنسيق: المشروع بأكمله عبارة عن مجموعة من العديد من الأمثلة المختلفة التي لها تكوين مختلف. Ansible يدمج ويدير هذه الحالات المختلفة ككل.

الحاجة إلى توفير غير مقبول

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

عرض توضيحي: أنشئ حزمة LAMP وانشر صفحة ويب

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

في هذا العرض التوضيحي للتوفير Ansible ، سأوضح لك كيفية توفير بيئة استضافة مواقع الويب باستخدام Ansible. نقوم بتثبيت حزمة LAMP (Linux و Apache و MySQL و PHP) ثم نقوم بنشر موقع ويب.

نوع c ++ stl

بالنسبة لهذا العرض التوضيحي ، لقد استخدمت Linux VirtualBox به إصدار Ubuntu 17.04. لقد استخدمت جهازين ظاهريين ، أحدهما كخادمي حيث تم تثبيت Ansible والآخر يعمل كمضيف بعيد. لنبدأ بتعيين Ansible على الخادم.

لقد أنشأت صفحة ويب ثابتة بسيطة محفوظة في مجلد فهرس الذي يحتوي على ملفين هما index.html و style.css.

index.html:

  الموقع باستخدام HTML و CSS                تبنى الآن        

style.css

* { الهامش: 0 المساحة المتروكة: 0 } رأس { صورة الخلفية: التدرج الخطي (rgba (0،0،0،0.5) ، rgba (0،0،0،0.5)) ، url ('puppie.jpg') الارتفاع: 100 فولت حجم الخلفية: الغلاف موقف الخلفية: المركز } قائمة .nav { تعويم: صحيح على غرار القائمة: لا شيء أعلى الهامش: 30 بكسل } .nav-menu li { عرض: مضمنة كتلة } .nav-menu li a { اللون: تركواز زخرفة النص: لا شيء المساحة المتروكة: 5 بكسل 20 بكسل عائلة الخطوط: 'Verdana'، 'sans-serif' حجم الخط: 20 بكسل } .homebtn a { الحد: 1 بكسل رمادي صلب لون الخلفية: أبيض } .nav-menu li a: hover { الحد: 1 بكسل رمادي صلب لون الخلفية: أبيض } .tagline { الموقف: مطلق العرض: 1200 بكسل الهامش الأيسر: 0 الهامش العلوي: 0 } h1 { اللون الابيض حجم الخط: 50 بكسل عائلة الخطوط: 'Verdana'، 'sans-serif' محاذاة النص: مركز قمة الهامش: 275 بكسل } .adopt { أعلى الهامش: 30 بكسل الهامش الأيسر: 540 بكسل } .bttn { الحد: 1 بكسل أبيض خالص المساحة المتروكة: 10 بكسل 30 بكسل اللون الأصفر عائلة الخطوط: 'Verdana'، 'sans-serif' حجم الخط: 22 بكسل زخرفة النص: لا شيء } .adopt a: مرر { لون الخلفية: burlywood }

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

sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

اضغط على Enter لقبول إضافة PPA ثم قم في النهاية بتثبيت Ansible بعد تحديث المستودعات.

sudo apt-get update $ sudo apt-get install ansible

الخطوة 2: انتقل إلى ملف / etc / hosts الخاص بالخادم وأضف اسم المضيف وعنوان IP الخاص بالمضيف.

الخ مضيفين - توفير أنسبل - Edurekaالشكل 1 - إضافة مضيفين عن بعد إلى ملف / etc / hosts - توفير غير مقبول

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

$ ssh-keygen

سيُطلب منك إدخال اسم الملفحيث أناترغب في حفظ مفتاحك ويطالبك أيضًا بإنشاء كلمة مرور للوصول إلى المفتاح الذي تم إنشاؤه وهو اختياري. بشكل افتراضي ، يتم حفظ المفتاح العام في ملف .ssh / id_rsa.pub ويتم حفظ المفتاح الخاص في .ssh / id_rsa.

التين ... 2 - إنشاء مفتاح ssh - الإمداد غير المستقر

الآن يجب أن يكون هذا المفتاح الذي تم إنشاؤه موجودًا في مضيفك. يمكن نسخ المفتاح إلى المضيف بطريقتين ، إما نسخه يدويًا إلى المضيف أو استخدام الأمر ssh-copy-id. في هذه الحالة ، سأقوم بنسخه باستخدام الأمر ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104.07

ملاحظة- تأكد من قدرتك على إرسال الرسائل إلى مضيفك قبل تنفيذ هذا الأمر.

الخطوة الرابعة: تكوين مضيفات أنسبل. انتقل إلى ملف / etc / ansible / hosts وأضف اسم المضيف. سيختلف هذا وفقًا لعدد المضيفين والخوادم لديك. يمكنك أيضًا الحصول على أكثر منخادم واحدهنا.

الشكل 3 - إضافة مضيفين عن بعد في ملف الجرد - توفير غير مقبول

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

$ ansible -m ping all

الشكل 4 - تحقق من حالة المضيف البعيد - التزويد الآمن

الخطوة السادسة: الآن أصبح Ansible جاهزًا ، فلنجعل البيئة جاهزة لنشر موقع ويب. سنستخدم دليل تشغيل Ansible واحدًا لتثبيت Apache و MySql و PHP. دعونا نلقي نظرة عليه.

ملاحظة: إذا كنت مبتدئًا ، فقم بإلقاء نظرة على هذه مدونة تشرح كيفية كتابة كتاب اللعب.

--- # Setup LAMP Stack - hosts: host1 jobs: - name: Add ppa repository تصبح: yes apt_repository: repo = ppa: ondrej / php - name: تثبيت مكدس المصباح يصبح: yes apt: pkg: - apache2 - mysql-server - php7.0 - حالة php7.0-mysql: ذاكرة التخزين المؤقت للتحديث الحالي: نعم - الاسم: بدء خادم apache يصبح: نعم الخدمة: الاسم: حالة apache2: تم بدء التمكين: نعم - الاسم: بدء خدمة mysql تصبح: نعم الخدمات: الاسم: حالة mysql: تم بدء التمكين: نعم - الاسم: إنشاء ملف الدليل الهدف: المسار = / var / www / html state = وضع الدليل = 0755 - الاسم: نشر index.html أصبح: نعم نسخة: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

هنا كما ترى ، لدينا 6 مهام ، كل مهمة تؤدي وظيفة معينة.

  • تضيف المهمة الأولى المستودع المطلوب لتثبيت MySQL و PHP.
  • تقوم المهمة الثانية بتثبيت apache2 و MySQL-server و PHP و PHP-MySQL.
  • تبدأ المهمة الثالثة والرابعة بخدمة Apache و MySQL.
  • تقوم المهمة الخامسة بإنشاء دليل هدف في الجهاز المضيف و
  • أخيرًا ، تقوم المهمة السادسة بتنفيذ ملف index.html ، فهي تلتقط الملف من جهاز الخادم وتنسخه إلى الجهاز المضيف.

قم بتنفيذ دليل التشغيل هذا باستخدام الأمر التالي:

$ ansible-playbook lamp.yml -K

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

التين ... 5 - تنفيذ Ansible Playbook - Ansible Provisioning

يمكنك الآن الدخول إلى الجهاز المضيف والتحقق مما إذا كان موقع الويب مستضافًا.

الشكل 6 - استضافة موقع الويب على Localhost - توفير غير قابل للتطبيق

الآن هذه صفحة ويب سيتم نشرها في جميع المضيفين الذين يتفاعلون مع الخادم (في حالتنا ، كان لدينا مضيف واحد فقط) ولكن نفس الشيء سيكون ممكنًا حتى مع 100 مضيف بعيد.

يقودنا هذا إلى نهاية مدونة Ansible Provisioning. إذا وجدت هذه المقالة مفيدة ، فتحقق من ' مُقدم من Edureka. يغطي جميع الأدوات التي جعلت صناعة تكنولوجيا المعلومات أكثر ذكاءً.

لديك سؤال لنا؟ الرجاء نشره على وسنعاود الاتصال بك.