تثبيت Ansible على Ubuntu وتجهيزه لنشر تطبيقات PHP
تعتبر أتمتة نشر التطبيقات وتكوين الخوادم من أهم المهام التي يقوم بها المهندسون في بيئات العمل المتطورة. في هذا السياق، يعد Ansible من الأدوات القوية التي تسهل أتمتة وإدارة تكوينات الأنظمة ونشر التطبيقات بشكل فعال. يتميز Ansible بكونه أداة مفتوحة المصدر تعتمد على لغة YAML البسيطة لكتابة المهام والأوامر، مما يجعلها سهل الاستخدام والتنفيذ. في هذا المقال، سنستعرض كيفية تثبيت Ansible على نظام Ubuntu وتجهيزه لنشر تطبيقات PHP بشكل منظم وفعال.
1. مقدمة عن Ansible
Ansible هو أداة مفتوحة المصدر لإدارة الأنظمة والأجهزة وتوزيع التكوينات على مجموعة من الخوادم. يعتمد Ansible على مفهوم “الإعلانات” بدلاً من البرمجة النصية المعقدة، مما يتيح للمستخدمين تنفيذ المهام دون الحاجة إلى معرفة كبيرة بالبرمجة أو لغات السكربتات المعقدة.
يتم تنفيذ الأوامر على الأجهزة المستهدفة عبر SSH، لذلك لا يحتاج المستخدمون إلى تثبيت عميل على الخوادم المستهدفة، مما يسهل نشر التكوينات عبر شبكات متعددة أو بيئات تشغيل مختلفة.
2. تثبيت Ansible على Ubuntu
2.1. تحديث النظام
قبل البدء في تثبيت أي أدوات أو حزم، من الأفضل دائمًا تحديث النظام لضمان أن جميع الحزم على جهاز Ubuntu لديك هي الأحدث. للقيام بذلك، يمكنك استخدام الأمر التالي:
bashsudo apt update && sudo apt upgrade -y
2.2. تثبيت Ansible من المستودعات الرسمية
يمكنك تثبيت Ansible بسهولة من مستودعات Ubuntu الرسمية باستخدام الأمر التالي:
bashsudo apt install ansible -y
بعد تنفيذ هذا الأمر، ستتمكن من استخدام Ansible على نظامك. للتحقق من التثبيت، يمكنك استخدام الأمر التالي:
bashansible --version
2.3. تثبيت Ansible من مستودعات Ansible الرسمية
في بعض الأحيان، قد ترغب في استخدام النسخة الأحدث من Ansible التي لا تتوفر في المستودعات الرسمية. في هذه الحالة، يمكنك إضافة مستودع Ansible الرسمي باستخدام الأوامر التالية:
-
أضف المستودع:
bashsudo apt-add-repository ppa:ansible/ansible
-
قم بتحديث قائمة الحزم:
bashsudo apt update
-
قم بتثبيت Ansible:
bashsudo apt install ansible -y
بعد التثبيت، يمكنك التحقق من إصدار Ansible باستخدام نفس الأمر الذي ذكرناه سابقًا:
bashansible --version
3. إعداد Ansible لاستخدامه في نشر تطبيقات PHP
بعد تثبيت Ansible، ستحتاج إلى إعداده بشكل صحيح ليكون جاهزًا لاستخدامه في نشر تطبيقات PHP. يشمل ذلك إعداد ملف inventori وتحديد الأوامر التي ستنفذ على الخوادم المستهدفة.
3.1. إعداد ملف Inventori
ملف inventori هو ملف يتم فيه تحديد الخوادم المستهدفة التي سيتم تنفيذ المهام عليها. يمكنك إنشاء هذا الملف باستخدام أي محرر نصوص، ولنفترض أنك ترغب في إنشاء ملف inventori بسيط كما يلي:
bashnano /etc/ansible/hosts
ثم أضف قائمة الخوادم التي ستقوم بتوزيع التطبيق عليها. على سبيل المثال:
ini[webservers]
192.168.1.10
192.168.1.11
هنا يتم تحديد أن الخوادم المستهدفة في مجموعة webservers هي 192.168.1.10 و 192.168.1.11.
3.2. إعداد مفتاح SSH للمصادقة
بما أن Ansible يعتمد على SSH للتواصل مع الخوادم المستهدفة، من الضروري تكوين مفتاح SSH. يمكنك إنشاء مفتاح SSH باستخدام الأمر التالي:
bashssh-keygen -t rsa -b 2048
ثم قم بنقل المفتاح إلى الخوادم المستهدفة باستخدام الأمر:
تأكد من استبدال user باسم المستخدم الذي تستخدمه للوصول إلى الخوادم.
3.3. اختبار الاتصال بالخوادم
للتحقق من الاتصال بالخوادم المستهدفة، يمكنك استخدام الأمر التالي:
bashansible webservers -m ping
إذا كانت الاستجابة صحيحة (أنت ترى pong في الإخراج)، فهذا يعني أن Ansible قادر على الاتصال بالخوادم المستهدفة بنجاح.
4. تجهيز الخوادم لنشر تطبيق PHP
قبل نشر تطبيقات PHP، يجب التأكد من أن الخوادم المستهدفة مجهزة بالبرمجيات اللازمة لتشغيل PHP بشكل صحيح. سنحتاج إلى تثبيت الخادم Apache، PHP، وأي مكتبات أو امتدادات PHP ضرورية.
4.1. إنشاء ملف Playbook
الخطوة التالية هي إنشاء ملف Playbook الذي سيقوم بتنفيذ المهام اللازمة لتثبيت البيئة الخاصة بتطبيق PHP. قم بإنشاء ملف Playbook جديد باستخدام المحرر المفضل لديك:
bashnano setup-php.yml
ثم أضف المهام التالية إلى هذا الملف:
yaml---
- name: إعداد بيئة PHP على الخوادم
hosts: webservers
become: yes
tasks:
- name: تثبيت Apache
apt:
name: apache2
state: present
- name: تثبيت PHP
apt:
name: php
state: present
- name: تثبيت امتدادات PHP الضرورية
apt:
name:
- php-mysql
- php-xml
- php-curl
- php-mbstring
state: present
- name: إعادة تشغيل Apache
service:
name: apache2
state: restarted
4.2. تنفيذ Playbook
بعد إعداد Playbook، يمكنك تنفيذه باستخدام الأمر التالي:
bashansible-playbook setup-php.yml
سيقوم هذا الأمر بتثبيت Apache وPHP، بالإضافة إلى بعض الامتدادات المهمة مثل php-mysql و php-xml وغيرها، وإعادة تشغيل خدمة Apache.
4.3. التحقق من تثبيت PHP
بعد تنفيذ Playbook، يمكنك التحقق من أن PHP تم تثبيته بشكل صحيح على الخوادم المستهدفة عن طريق زيارة عنوان IP الخاص بالخادم في المتصفح. إذا تم تثبيت Apache وPHP بنجاح، يجب أن ترى صفحة الترحيب الخاصة بـ Apache.
يمكنك أيضًا التأكد من أن PHP يعمل بشكل صحيح باستخدام الأمر التالي:
bashphp -v
5. نشر تطبيق PHP باستخدام Ansible
الآن بعد أن أصبحت البيئة جاهزة، يمكنك نشر تطبيق PHP على الخوادم المستهدفة باستخدام Ansible. لإنجاز ذلك، سنقوم بتحديد ملفات التطبيق في Playbook جديد.
5.1. إعداد Playbook لنشر التطبيق
قم بإنشاء Playbook جديد لنسخ ملفات التطبيق إلى الخوادم المستهدفة:
bashnano deploy-php-app.yml
ثم أضف التالي إلى ملف Playbook:
yaml---
- name: نشر تطبيق PHP
hosts: webservers
become: yes
tasks:
- name: نسخ ملفات التطبيق إلى الخادم
copy:
src: /path/to/your/php/app/
dest: /var/www/html/
owner: www-data
group: www-data
mode: '0755'
- name: إعادة تشغيل Apache بعد نشر التطبيق
service:
name: apache2
state: restarted
5.2. تنفيذ Playbook لنشر التطبيق
لتنفيذ Playbook، استخدم الأمر التالي:
bashansible-playbook deploy-php-app.yml
5.3. التحقق من نشر التطبيق
بعد تنفيذ Playbook بنجاح، يمكنك التحقق من نشر التطبيق عن طريق زيارة عنوان الخادم في المتصفح. يجب أن يكون تطبيق PHP الخاص بك قيد التشغيل ويظهر بشكل صحيح.
6. الخلاصة
يعد استخدام Ansible أداة قوية وفعالة لتبسيط وتوحيد عملية نشر تطبيقات PHP على عدة خوادم. من خلال تثبيت Ansible على Ubuntu، يمكنك أتمتة المهام المختلفة، بدءًا من إعداد البيئة إلى نشر التطبيق، مما يوفر الوقت ويزيد من الكفاءة. باستخدام Playbooks، يمكنك كتابة المهام وتوزيعها على العديد من الخوادم المستهدفة بسهولة، مما يجعل أنظمة إدارة الخوادم أكثر مرونة وقوة.
إن الأتمتة باستخدام Ansible ليست مقتصرة فقط على نشر التطبيقات، بل يمكن توسيعها لتشمل العديد من المهام الأخرى مثل إدارة التكوينات، تثبيت الحزم، والتأكد من أن جميع الخوادم تعمل بشكل موحد وآمن.

