ديف أوبس

أتمتة إعداد خادم أوبونتو 18.04

أتمتة إعداد خادم أولي أوبونتو بإصدار 18.04

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

1. متطلبات النظام والتجهيزات الأولية

قبل البدء في إعداد الخادم، يجب أن تكون لديك بعض المتطلبات الأساسية:

  • جهاز خادم أو بيئة افتراضية: يمكن أن يكون الخادم جهازًا فعليًا أو جهازًا افتراضيًا، حيث يمكنك استخدام أدوات مثل VirtualBox أو VMware لتشغيل أوبونتو 18.04.

  • نسخة أوبونتو 18.04: يمكن تنزيل النسخة من الموقع الرسمي أو من خلال أي مصدر موثوق آخر.

  • إتصال بالإنترنت: لتثبيت التحديثات وحزم البرمجيات الضرورية.

2. تجهيز البيئة للأتمتة

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

  • Ansible: أداة مفتوحة المصدر لإدارة الأنظمة، وتعتبر واحدة من أبرز الأدوات في أتمتة إعدادات الخوادم.

  • Puppet: أداة أخرى شائعة لإدارة الأنظمة.

  • Chef: أداة أخرى معروفة في مجال الأتمتة.

  • Terraform: تستخدم بشكل رئيسي في إدارة البنية التحتية.

3. إعداد الخادم باستخدام Ansible

في هذا القسم، سنتناول كيفية استخدام Ansible لأتمتة إعداد خادم أولي أوبونتو 18.04.

تثبيت Ansible على أوبونتو 18.04

للبدء في استخدام Ansible على الخادم، تحتاج أولًا إلى تثبيت الأداة. يمكن تثبيتها بسهولة من مستودعات أوبونتو باستخدام الأوامر التالية:

bash
sudo apt update sudo apt install ansible -y

إعداد ملف الجرد (Inventory)

Ansible يعتمد على ملف الجرد لتحديد الخوادم التي سيقوم بإدارتها. قم بإنشاء ملف يسمى hosts أو inventory يحتوي على تفاصيل الخوادم المستهدفة. في حالة إعداد خادم واحد، يمكن أن يكون الملف بالشكل التالي:

ini
[servers] your_server_ip

كتابة Playbook لأتمتة الإعدادات

Playbook هو ملف يحتوي على تعليمات (أوامر) يتم تنفيذها على الخوادم المستهدفة. لنفترض أن هدفنا هو إعداد خادم بأدوات أساسية مثل Nginx و MySQL و PHP. سنكتب Playbook كما يلي:

yaml
--- - name: إعداد خادم أوبونتو 18.04 hosts: servers become: yes tasks: - name: تحديث النظام apt: update_cache: yes upgrade: yes - name: تثبيت Nginx apt: name: nginx state: present - name: تثبيت MySQL apt: name: mysql-server state: present - name: تثبيت PHP apt: name: php-fpm state: present - name: بدء خدمة Nginx service: name: nginx state: started enabled: yes

تشغيل Playbook

بعد كتابة Playbook، يمكن تشغيله باستخدام الأمر التالي:

bash
ansible-playbook -i inventory setup.yml

سيقوم Ansible الآن بتنفيذ المهام المحددة في Playbook على الخادم أو الخوادم المستهدفة.

4. إعداد الأمان باستخدام أتمتة

من الأهمية بمكان عند إعداد خادم أوبونتو 18.04 أن تهتم بالأمان. يمكن استخدام أدوات مثل ufw (جدار الحماية غير المعتمد من قبل أوبونتو) أو fail2ban لتوفير حماية إضافية.

إعداد جدار الحماية باستخدام UFW

UFW هو أداة لتهيئة الجدار الناري على أوبونتو. يمكن أتمتة إعداده باستخدام Ansible كما يلي:

yaml
- name: إعداد جدار الحماية UFW hosts: servers become: yes tasks: - name: السماح بالاتصالات عبر SSH ufw: rule: allow name: OpenSSH - name: السماح بالاتصالات عبر HTTP ufw: rule: allow name: 'Nginx HTTP' - name: تفعيل UFW ufw: state: enabled logging: on

تثبيت fail2ban

Fail2ban هو برنامج يساعد في حماية الخوادم من محاولات تسجيل الدخول غير المصرح بها. يمكن أتمتة تثبيته باستخدام Ansible:

yaml
- name: تثبيت Fail2Ban hosts: servers become: yes tasks: - name: تثبيت fail2ban apt: name: fail2ban state: present

5. إعداد نسخ احتياطي تلقائي

من المهم إعداد نسخ احتياطي بشكل دوري لضمان عدم فقدان البيانات. يمكن أتمتة عملية النسخ الاحتياطي باستخدام أدوات مثل rsync أو duplicity، وتحديد الجدول الزمني للنسخ الاحتياطي باستخدام cron.

إعداد نسخ احتياطي باستخدام rsync

يمكن إنشاء Playbook باستخدام Ansible لأتمتة عملية النسخ الاحتياطي:

yaml
- name: إعداد النسخ الاحتياطي التلقائي hosts: servers become: yes tasks: - name: نسخ المجلدات المهمة command: "rsync -avz /important_folder /backup_folder"

إعداد Cron job للنسخ الاحتياطي التلقائي

لتحديد وقت معين لإجراء النسخ الاحتياطي، يمكن استخدام cron jobs في أوبونتو. يمكن أتمتة ذلك باستخدام Ansible:

yaml
- name: إعداد Cron job للنسخ الاحتياطي hosts: servers become: yes tasks: - name: إضافة cron job cron: name: "نسخ احتياطي يومي" minute: "0" hour: "3" job: "rsync -avz /important_folder /backup_folder"

6. التحديثات التلقائية

تعد التحديثات التلقائية من الخطوات الأساسية لضمان بقاء النظام آمنًا ويعمل بكفاءة. يمكن تكوين التحديثات التلقائية باستخدام أداة unattended-upgrades.

تثبيت أداة التحديث التلقائي

لتمكين التحديثات التلقائية على أوبونتو، يمكنك استخدام Ansible لتثبيت unattended-upgrades:

yaml
- name: تثبيت تحديثات تلقائية hosts: servers become: yes tasks: - name: تثبيت unattended-upgrades apt: name: unattended-upgrades state: present

تمكين التحديثات التلقائية

بعد تثبيت الأداة، يمكن تكوينها لأتمتة عملية التحديثات:

yaml
- name: تمكين التحديثات التلقائية hosts: servers become: yes tasks: - name: تفعيل التحديثات التلقائية lineinfile: path: /etc/apt/apt.conf.d/20auto-upgrades regexp: '^APT::Periodic::Unattended-Upgrade' line: 'APT::Periodic::Unattended-Upgrade "1";'

7. مراقبة الأداء

من المهم مراقبة أداء الخادم لضمان عدم وجود مشاكل تؤثر على أدائه. يمكن استخدام أدوات مثل htop أو netdata لمراقبة الخادم.

تثبيت Netdata

لتثبيت Netdata على الخادم باستخدام Ansible، يمكنك استخدام Playbook مثل هذا:

yaml
- name: تثبيت Netdata hosts: servers become: yes tasks: - name: تثبيت Netdata command: "bash <(curl -Ss https://my-netdata.io/kickstart.sh)"

8. الخلاصة

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