ديف أوبس

إدارة Puppet باستخدام Foreman

استخدام Foreman لإدارة نقاط Puppet على خادوم Ubuntu 14.04

مقدمة

يُعتبر Foreman من الأدوات المفتاحية في عالم إدارة الأنظمة الآلية، حيث يُمكّن مسؤولي الأنظمة من التحكم المركزي في إعداد وتوزيع البنى التحتية لتقنية المعلومات، خاصةً في البيئات المعتمدة على Puppet. في الوقت الذي ظهرت فيه الحاجة إلى إدارة أعداد كبيرة من الخوادم بطريقة مرنة وموثوقة، ظهر Foreman كحل قوي يجمع بين الواجهة الرسومية وإمكانات الأتمتة، لتوفير تجربة إدارة متقدمة وشاملة.

في هذا المقال، سنقوم باستعراض شامل لطريقة استخدام Foreman على خادوم يعمل بنظام Ubuntu 14.04 لإدارة نقاط Puppet (Puppet Nodes)، من مرحلة التحضير والتثبيت إلى التشغيل والتكامل الكامل. وسنتطرق لكافة التفاصيل التقنية والإعدادات الضرورية لضمان بيئة مستقرة وفعالة.


نظرة عامة على Foreman وPuppet

ما هو Foreman؟

Foreman هو تطبيق ويب مفتوح المصدر لإدارة البنية التحتية وتوفير أنظمة خوادم جديدة، متكامل مع أدوات مثل Puppet وAnsible وChef. يُمكّن المستخدم من إنشاء وإدارة ونشر الخوادم تلقائيًا، سواء في البيئات المحلية أو السحابية، بالإضافة إلى إمكانية تتبع حالة التهيئة (Configuration) والمزامنة.

ما هو Puppet؟

Puppet هو نظام إدارة تهيئة يعتمد على مفهوم “البنية التحتية كرمز” (Infrastructure as Code)، يسمح بكتابة ملفات توصيفية تُحدد كيفية إعداد الخوادم تلقائيًا. يستخدم Puppet بروتوكول العميل/الخادم، حيث يكون Puppet master مسؤولًا عن تقديم ملفات التهيئة إلى العقد (nodes) التي تُعتبر عملاء له.


متطلبات النظام

لتثبيت Foreman وPuppet على خادوم Ubuntu 14.04، يجب أولاً التأكد من توافر المتطلبات الأساسية:

  • خادوم يعمل بإصدار Ubuntu 14.04 LTS

  • امتيازات المستخدم الجذر (root) أو sudo

  • اتصال إنترنت ثابت لتنزيل الحزم المطلوبة

  • إعداد اسم نطاق مؤهل (FQDN) للخادوم (مثل: foreman.example.com)

  • وقت النظام مضبوط بدقة (يفضل تفعيل NTP)


إعداد النظام الأساسي

تحديث النظام

bash
sudo apt-get update sudo apt-get upgrade -y

إعداد اسم المضيف (Hostname)

bash
sudo hostnamectl set-hostname foreman.example.com

ثم أضف السطر التالي إلى ملف /etc/hosts:

127.0.1.1 foreman.example.com foreman

تثبيت Foreman وPuppet

إعداد مستودعات Foreman الرسمية

أول خطوة هي إضافة مستودعات Foreman المناسبة لإصدار Ubuntu 14.04:

bash
wget https://deb.theforeman.org/foreman.asc -O- | sudo apt-key add - echo "deb http://deb.theforeman.org/ trusty 1.24" | sudo tee /etc/apt/sources.list.d/foreman.list echo "deb http://deb.theforeman.org/plugins trusty 1.24" | sudo tee -a /etc/apt/sources.list.d/foreman.list sudo apt-get update

ملاحظة: الإصدار 1.24 هو آخر إصدار يدعم Ubuntu 14.04 بشكل رسمي من Foreman.

تثبيت Foreman مع Puppet

bash
sudo apt-get install foreman-installer -y

بعد انتهاء التنزيل، يتم تنفيذ التثبيت الفعلي بواسطة الأمر التالي:

bash
sudo foreman-installer

تبدأ عملية التثبيت التفاعلي، وتقوم بأتمتة جميع الإعدادات الأساسية، بما في ذلك:

  • تثبيت Foreman

  • تثبيت Puppet master

  • إعداد قاعدة البيانات PostgreSQL

  • تكوين Apache كخادم ويب

  • تهيئة اتصالات SSL

بعد الانتهاء، يتم عرض بيانات الوصول إلى لوحة تحكم Foreman:

markdown
* Foreman is running at https://foreman.example.com Initial credentials: Login: admin Password: ************

الوصول إلى واجهة Foreman

يتم الدخول إلى لوحة التحكم من المتصفح عبر العنوان:

arduino
https://foreman.example.com

مع قبول استثناء الشهادة الذاتية (self-signed certificate) في حالة ظهور تحذير SSL.


تسجيل العقد (Nodes) في Foreman

بعد تثبيت Foreman وPuppet master، يجب إضافة العقد (Puppet agents) إلى النظام.

إعداد Puppet Agent على العقد

على كل خادوم ترغب في ضمه كـ node، يجب تنفيذ التالي:

bash
sudo apt-get install puppet -y

ثم في ملف الإعداد /etc/puppet/puppet.conf، أضف ما يلي:

ini
[main] server = foreman.example.com

تنفيذ أول اتصال من العقدة

bash
sudo puppet agent --test

ستقوم العقدة بإرسال شهادة SSL إلى الخادوم، ويجب أن يتم التحقق منها يدويًا في Foreman.


قبول الشهادات من Foreman

من واجهة Foreman:

  1. اذهب إلى Infrastructure > Smart Proxies.

  2. اختر الخادم المُدار.

  3. اذهب إلى Certificates.

  4. وافق على الشهادة القادمة من العقدة الجديدة.

بعد القبول، يتم تسجيل العقدة في Foreman ويمكن متابعتها من خلال لوحة التحكم.


إدارة الوحدات (Modules) باستخدام Foreman

Foreman يتكامل مع Puppet modules عبر مستودع /etc/puppet/environments/production/modules.

تثبيت وحدة Puppet

bash
sudo puppet module install puppetlabs-apache

ثم من واجهة Foreman:

  1. اذهب إلى Configure > Classes.

  2. اضغط على Import from puppet.

  3. ستظهر جميع الوحدات المُثبتة، اختر ما ترغب في إضافته واضغط Import.

بعد الاستيراد، يمكن ربط الفئة (Class) مع مضيف معين أو مجموعة مضيفين.


إعدادات التقارير والأوامر الزمنية

Foreman يعتمد على cron jobs لأداء المهام الدورية مثل إرسال تقارير Puppet.

إعداد foreman-proxy

في ملف الإعداد /etc/foreman-proxy/settings.yml، تأكد من تمكين الميزات التالية:

yaml
:puppet: true :puppetca: true :puppet_run: true

ثم أعد تشغيل الخدمة:

bash
sudo service foreman-proxy restart

التكامل مع DHCP وDNS وTFTP

من الميزات المتقدمة في Foreman تكامله مع خدمات الشبكة لتوفير بيئة PXE boot آلي. يمكن تثبيت هذه الميزات عبر:

bash
sudo foreman-installer --enable-foreman-proxy-dhcp --enable-foreman-proxy-dns --enable-foreman-proxy-tftp

ثم إعداد إعدادات الشبكة المناسبة من واجهة Foreman.


جدول ملخص للإعدادات الأساسية

الخدمة المسار أو الأمر الملاحظات
تحديث النظام apt-get update && upgrade لضمان أحدث حزم الأمان
اسم المضيف /etc/hosts + hostnamectl يجب أن يكون FQDN
المستودعات /etc/apt/sources.list.d/ مستودعات Foreman الرسمية
التثبيت foreman-installer أداة التثبيت الشاملة
الوصول إلى الواجهة https://foreman.example.com يتم استخدام HTTPS
تسجيل العقد puppet agent --test يتطلب موافقة الشهادة
استيراد الوحدات puppet module install ثم استيرادها من واجهة Foreman
تمكين الميزات settings.yml للتكامل مع خدمات الشبكة والتقارير
إعادة التشغيل service foreman-proxy restart بعد تعديل الإعدادات

الخلاصة التقنية

يُعد Foreman منصة قوية ومرنة لإدارة البنية التحتية التي تعتمد على Puppet، خاصة في البيئات التي تتطلب تحكمًا مركزيًا شاملًا وقابلية أتمتة متقدمة. يوفر التكامل بين Foreman وPuppet تجربة إدارة مرئية متكاملة تسهل تتبع حالة العقد وتحديث تهيئتها وتوزيع المهام تلقائيًا. على الرغم من أن Ubuntu 14.04 يُعتبر إصدارًا قديمًا نسبيًا، فإن Foreman لا يزال يقدم دعمًا مقبولًا له، مما يجعله خيارًا عمليًا في البيئات التي لم تُحدث بعد أنظمتها.

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


المراجع:

  1. The Foreman Manual – Foreman.org

  2. Puppet Documentation – Puppet.com