العودة إلى المدونة

تثبيت وتكوين LAMP على Ubuntu 20.04 باستخدام Ansible

تثبيت وتكوين LAMP على Ubuntu 20.04 باستخدام Ansible

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

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

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

في هذا الدليل، سنقوم بـ إرشادك خلال خطوات تثبيت وإعداد LAMP على Ubuntu 20.04 باستخدام Ansible.

المتطلبات الأساسية

لمتابعة هذا البرنامج التعليمي، ستحتاج إلى:

ما هو الغرض من Ansible Playbook؟

إن دليل تشغيل Ansible هذا هو طريقة بديلة لتنفيذ الإجراء الموضح في دليلنا إعداد LAMP Stack Linux Apache MySQL PHP.

سيؤدي تشغيل دليل تشغيل Ansible إلى الإجراءات التالية على مضيفي Ansible لديك:

  • تثبيت aptitude، وهو بديل لمدير الحزم apt كما يفضل Ansible.

  • تثبيت جميع حزم LAMP اللازمة.

  • إنشاء Apache جديدVirtualHost وتكوين جذر مستند مخصص.

  • تفعيل ON الـ الجديدVirtualHost.

  • تعطيل OFF لموقع Apache الافتراضي، أي ضبط متغير disable_default على true.

  • اختر كلمة مرور لمستخدم root الخاص بـ MySQL.

  • إزالة حسابات MySQL المجهولة وقاعدة بيانات الاختبار.

  • إعداد UFW للسماح بمرور حركة مرور HTTP على المنفذ المكون، حيث يكون الافتراضي هو 80.

  • إعداد سكربت اختبار PHP.

بعد اكتمال تشغيل Ansible playbook، سترى بيئة ويب PHP تعمل فوق Apache وفقًا للتكوينات التي قمنا بضبطها.

استخدام Ansible Playbook

أولاً، احصل على LAMP playbook والتبعيات الخاصة به من do-community/ansible-playbooks المستودع. بعد ذلك، قم باستنساخ المستودع الذي يحتوي على LAMP playbook إلى مجلد محلي داخل Ansible Control Node.

قم بتشغيل git pull أمر للتأكد من أن لديك إمكانية الوصول إلى المحتوى الصحيح الذي سنستخدمه في هذا البرنامج التعليمي:

إذا كنت تستخدم do-community/ansible-playbooks للمرة الأولى، فكر في استنساخ المستودع إلى المجلد الرئيسي الخاص بك:

انتقل إلى lamp_ubuntu2004 وسوف ترى البنية:

إليك نظرة عامة على ما تعنيه هذه الملفات:

  • files/info.php.j2: هذا ملف قالب حيث يمكنك إعداد صفحة اختبار PHP على جذر خادم الويب.

  • files/apache.conf.j2: ملف قالب آخر يُستخدم لإعداد Apache VirtualHost.

  • vars/default.yml: إنه ملف متغيرات لتخصيص إعدادات playbook.

  • playbook.yml: يحتوي هذا الملف على جميع محتويات المهام التي سيتم تنفيذها على الخادم/الخوادم البعيدة.

  • readme.md: ملف قراءة يحتوي على المعلومات الخاصة بـ playbook هذا.

فلنقم بتخصيص تكوينات MySQL و Apache عن طريق إجراء تغييرات في ملف متغيرات playbook. انتقل إلى lamp_ubuntu2004 وافتح ملف vars/default.yml باستخدام nano محرر:

عند فتح ملف vars/default.yml ، ستكون هناك قائمة بالمتغيرات التي يجب تعديلها:

دعونا نفهم كل متغير من المتغيرات بالتفصيل:

  • mysql_root_password: يخزن كلمة المرور لحساب root الخاص بـ MySQL.

  • app_user: هو مستخدم بعيد غير root على مضيف Ansible يعمل كمالك لملفات التطبيق.

  • http_host: يعرض اسم النطاق الخاص بك.

  • http_conf: يعرض اسم ملف التكوين الذي تم إنشاؤه داخل Apache.

  • http_port: هو منفذ HTTP لهذا المضيف الافتراضي، و 80 هو الافتراضي.

  • disable_default: يُستخدم للتراجع عن الخيارات الافتراضية التي تأتي مع Apache.

ثم احفظ وأغلق vars/default.yml الملف.

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

دعونا ننفذ الـ playbook على خادم واحد server1 والاتصال به باستخدام مستخدم واحد كـ justin:

ستحصل على مخرجات مشابهة لهذا:

بمجرد رؤية اكتمال تشغيل دليل التشغيل (playbook)، انتقل إلى متصفح الويب الخاص بك وقم بالوصول إلى مضيف الخادم. لا تنسَ إرفاق /info.php في نهاية عنوان IP:

عند النقر على هذا الـ URL، ستظهر لك صفحة كهذه:

تحذير: تحتوي الصفحة المعروضة على معلومات حساسة حول بيئة PHP الخاصة بك. لذلك، يوصى بإزالة معلوماتك الشخصية من الخادم باستخدام الأمر التالي:

rm -f /var/www/info.php

ماذا يوجد في الـ Playbook؟

بعد ذلك، دعنا نفهم معنى وأهمية الملفات المستخدمة في ansible-playbook محتوى:

  • vars/default.yml

إنّ ملف متغيرات default.yml يحتوي على اسم النطاق وكلمة المرور لحساب MySQL root . هذه هي القيم الافتراضية المستخدمة في مهام ansible-playbook :

  • files/apache.conf.j2

إن ملف apache.conf.j2 هو قالب Jinja 2 يُستخدم لتكوين Apache VirtualHost جديد. يجب تحديد المتغيرات المستخدمة في هذا القالب في ملف vars/default.yml للمتغيرات:

  • files/info.php.j2

على غرار files/apache.conf.j2، فإن ملف info.php.j2 هو أيضًا قالب Jinja. نستخدم هذا الملف لإعداد سكربت PHP تجريبي في جذر المستند لخادم LAMP تم تكوينه حديثًا:

  • playbook.yml

إن ملف playbook.yml هو الملف الذي يتم فيه تحديد جميع المهام الخاصة بهذا الإعداد. في هذا الملف، يتم تكوين جميع حزم LAMP. يبدأ بتحديد مجموعة الخوادم المستهدفة ويتم تعيينه على all. أيضًا، فإنه يأخذ become كقيمة true ( become: true)، ويحدد جميع المهام التي يجب تنفيذها. بعد ذلك، يحتوي ملف yaml على الملف الافتراضي، وهو vars/default.yml ملف المتغيرات، لتحميل خيارات التكوين:

يمكنك تعديل هذه الملفات بناءً على احتياجات ومتطلبات مشروعك.

الخاتمة

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

هل أنت جديد على حزمة LAMP وتريد التعمق في هذا الموضوع؟ استكشف البرامج التعليمية التالية على مدونتنا:

حوسبة سعيدة!

author

Hark Labs

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.