ديف أوبس

تثبيت Ansible على Ubuntu لنشر PHP

تثبيت Ansible على Ubuntu وتجهيزه لنشر تطبيقات PHP

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

1. مقدمة عن Ansible

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

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

2. تثبيت Ansible على Ubuntu

2.1. تحديث النظام

قبل البدء في تثبيت أي أدوات أو حزم، من الأفضل دائمًا تحديث النظام لضمان أن جميع الحزم على جهاز Ubuntu لديك هي الأحدث. للقيام بذلك، يمكنك استخدام الأمر التالي:

bash
sudo apt update && sudo apt upgrade -y

2.2. تثبيت Ansible من المستودعات الرسمية

يمكنك تثبيت Ansible بسهولة من مستودعات Ubuntu الرسمية باستخدام الأمر التالي:

bash
sudo apt install ansible -y

بعد تنفيذ هذا الأمر، ستتمكن من استخدام Ansible على نظامك. للتحقق من التثبيت، يمكنك استخدام الأمر التالي:

bash
ansible --version

2.3. تثبيت Ansible من مستودعات Ansible الرسمية

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

  1. أضف المستودع:

bash
sudo apt-add-repository ppa:ansible/ansible
  1. قم بتحديث قائمة الحزم:

bash
sudo apt update
  1. قم بتثبيت Ansible:

bash
sudo apt install ansible -y

بعد التثبيت، يمكنك التحقق من إصدار Ansible باستخدام نفس الأمر الذي ذكرناه سابقًا:

bash
ansible --version

3. إعداد Ansible لاستخدامه في نشر تطبيقات PHP

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

3.1. إعداد ملف Inventori

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

bash
nano /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 باستخدام الأمر التالي:

bash
ssh-keygen -t rsa -b 2048

ثم قم بنقل المفتاح إلى الخوادم المستهدفة باستخدام الأمر:

bash
ssh-copy-id [email protected] ssh-copy-id [email protected]

تأكد من استبدال user باسم المستخدم الذي تستخدمه للوصول إلى الخوادم.

3.3. اختبار الاتصال بالخوادم

للتحقق من الاتصال بالخوادم المستهدفة، يمكنك استخدام الأمر التالي:

bash
ansible webservers -m ping

إذا كانت الاستجابة صحيحة (أنت ترى pong في الإخراج)، فهذا يعني أن Ansible قادر على الاتصال بالخوادم المستهدفة بنجاح.

4. تجهيز الخوادم لنشر تطبيق PHP

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

4.1. إنشاء ملف Playbook

الخطوة التالية هي إنشاء ملف Playbook الذي سيقوم بتنفيذ المهام اللازمة لتثبيت البيئة الخاصة بتطبيق PHP. قم بإنشاء ملف Playbook جديد باستخدام المحرر المفضل لديك:

bash
nano 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، يمكنك تنفيذه باستخدام الأمر التالي:

bash
ansible-playbook setup-php.yml

سيقوم هذا الأمر بتثبيت Apache وPHP، بالإضافة إلى بعض الامتدادات المهمة مثل php-mysql و php-xml وغيرها، وإعادة تشغيل خدمة Apache.

4.3. التحقق من تثبيت PHP

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

يمكنك أيضًا التأكد من أن PHP يعمل بشكل صحيح باستخدام الأمر التالي:

bash
php -v

5. نشر تطبيق PHP باستخدام Ansible

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

5.1. إعداد Playbook لنشر التطبيق

قم بإنشاء Playbook جديد لنسخ ملفات التطبيق إلى الخوادم المستهدفة:

bash
nano 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، استخدم الأمر التالي:

bash
ansible-playbook deploy-php-app.yml

5.3. التحقق من نشر التطبيق

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

6. الخلاصة

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

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