دليل شامل لتثبيت أوبن ستاك يدويًا على لينكس

التثبيت اليدوي لأوبن ستاك على لينكس

جدول المحتويات

  1. المقدمة
  2. المتطلبات الأساسية
  3. إعداد البيئة
  4. تثبيت وإعداد مكونات أوبن ستاك
    • كيستون (خدمة الهوية)
    • غلانس (خدمة الصور)
    • نوفا (خدمة الحوسبة)
    • نيوترون (خدمة الشبكات)
    • سيندر (خدمة التخزين القرصي)
    • هورايزون (لوحة التحكم)
  5. التحقق واستكشاف الأخطاء وإصلاحها
  6. الخاتمة

1. المقدمة

أوبن ستاك هو منصة مفتوحة المصدر تُستخدم لإنشاء وإدارة السحب العامة والخاصة. يرشدك هذا الدليل خلال تثبيت أوبن ستاك يدويًا على خادم لينكس.

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

تأكد من أن نظامك يلبي المتطلبات الأساسية التالية:

  • تثبيت نظيف لإحدى توزيعات لينكس المدعومة (مثل أوبونتو 20.04 إل تي إس أو سينت أو إس 8).
  • 8 جيجابايت على الأقل من الذاكرة العشوائية و2 معالجين.
  • صلاحيات الجذر أو السودو.
  • إعدادات شبكة معدة بشكل صحيح.

3. إعداد البيئة

تحديث وترقية نظامك

$ sudo apt update && sudo apt upgrade -y

تثبيت الحزم الأساسية

$ sudo apt install -y python3-pip python3-dev libffi-dev gcc libssl-dev

4. تثبيت وإعداد مكونات أوبن ستاك

أ. كيستون (خدمة الهوية)

  1. تثبيت كيستون
$ sudo apt install -y keystone
  1. إعداد كيستون

قم بتحرير ملف /etc/keystone/keystone.conf:

$ sudo nano /etc/keystone/keystone.conf

اضبط القيم التالية:

[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[token]
provider = fernet
  1. ضع بيانات قاعدة بيانات خدمة الهوية
$ sudo keystone-manage db_sync
  1. ابدأ مستودعات مفاتيح Fernet
$ sudo keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
$ sudo keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  1. أبدأ خدمة الهوية
$ sudo keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://controller:5000/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne
  1. إعداد خادم Apache HTTP

قم بتحرير ملف /etc/apache2/apache2.conf:

$ sudo nano /etc/apache2/apache2.conf

أضف ما يلي:

ServerName controller

فعّل خدمتي Apache و WSGI:

$ sudo service apache2 restart

ب. غلانس (خدمة الصور)

  1. تثبيت غلانس
$ sudo apt install -y glance
  1. إعداد غلانس

قم بتحرير ملف /etc/glance/glance-api.conf:

$ sudo nano /etc/glance/glance-api.conf

اضبط القيم التالية:

[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
flavor = keystone
  1. ضع بيانات قاعدة بيانات خدمة الصور
$ sudo glance-manage db_sync
  1. أعد تشغيل خدمة غلانس
$ sudo service glance-api restart

ج. نوفا (خدمة الحوسبة)

  1. تثبيت نوفا
$ sudo apt install -y nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler
  1. إعداد نوفا

قم بتحرير ملف /etc/nova/nova.conf:

$ sudo nano /etc/nova/nova.conf

اضبط القيم التالية:

[database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova
[api_database]
connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = NOVA_PASS
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
[vnc]
enabled = True
vncserver_listen = $my_ip
vncserver_proxyclient_address = $my_ip
[glance]
api_servers = http://controller:9292
  1. ضع بيانات قواعد بيانات الحوسبة
$ sudo nova-manage api_db sync
$ sudo nova-manage cell_v2 map_cell0
$ sudo nova-manage cell_v2 create_cell --name=cell1
$ sudo nova-manage db sync
  1. أعد تشغيل خدمات نوفا
$ sudo service nova-api restart
$ sudo service nova-scheduler restart  
$ sudo service nova-conductor restart
$ sudo service nova-novncproxy restart

د. نيوترون (خدمة الشبكات)

  1. تثبيت نيوترون
$ sudo apt install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
  1. إعداد نيوترون

قم بتحرير ملف /etc/neutron/neutron.conf:

$ sudo nano /etc/neutron/neutron.conf

اضبط القيم التالية:

[database]
connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000  
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = neutron
password = NEUTRON_PASS
[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = True

قم بتحرير ملف /etc/neutron/plugins/ml2/ml2_conf.ini:

$ sudo nano /etc/neutron/plugins/ml2/ml2_conf.ini

اضبط القيم التالية:

[ml2]
type_drivers = flat,vlan
tenant_network_types =
mechanism_drivers = linuxbridge
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[securitygroup]
enable_ipset = True
  1. ضع بيانات قاعدة بيانات الشبكات
$ sudo neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head
  1. أعد تشغيل خدمات نيوترون
$ sudo service neutron-server restart
$ sudo service neutron-linuxbridge-agent restart
$ sudo service neutron-dhcp-agent restart 
$ sudo service neutron-metadata-agent restart

هـ. سيندر (خدمة التخزين القرصي)

  1. تثبيت سيندر
$ sudo apt install -y cinder-api cinder-scheduler
  1. إعداد سيندر

قم بتحرير ملف /etc/cinder/cinder.conf:

$ sudo nano /etc/cinder/cinder.conf

اضبط القيم التالية:

[database]
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password 
project_domain_name = Default
user_domain_name = Default
project_name = service
username = cinder
password = CINDER_PASS
[DEFAULT]
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
  1. ضع بيانات قاعدة بيانات التخزين القرصي
$ sudo cinder-manage db sync
  1. أعد تشغيل خدمات سيندر
$ sudo service cinder-api restart
$ sudo service cinder-scheduler restart

و. هورايزون (لوحة التحكم)

  1. تثبيت هورايزون
$ sudo apt install -y openstack-dashboard
  1. إعداد هورايزون

قم بتحرير ملف /etc/openstack-dashboard/local_settings.py:

$ sudo nano /etc/openstack-dashboard/local_settings.py

اضبط القيم التالية:

OPENSTACK_HOST = "controller"
ALLOWED_HOSTS = ['*']
SESSION_ENGINE = 'django.contrib
.sessions.backends.cache'
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'controller:11211',
    }
}
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 3,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
  1. أعد تشغيل Apache
$ sudo service apache2 reload

5. التحقق واستكشاف الأخطاء وإصلاحها

  1. تحقق من حالة الخدمة

تأكد من تشغيل جميع خدمات أوبن ستاك:

$ sudo systemctl status <service-name>
  1. تحقق من خدمة كيستون

قم بالمصادقة باستخدام واجهة سطر أوامر أوبن ستاك:

$ export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ export OS_PROJECT_NAME=admin 
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:5000/v3
$ export OS_IDENTITY_API_VERSION=3

تحقق من خدمة كيستون:

$ openstack token issue
  1. تحقق من خدمة غلانس

ارفع صورة عينة:

$ wget http://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img
$ openstack image create "cirros" --file cirros-0.5.2-x86_64-disk.img --disk-format qcow2 --container-format bare --public

اعرض قائمة الصور:

$ openstack image list
  1. تحقق من خدمة نوفا

أنشئ نكهة:

$ openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

اعرض قائمة النكهات:

$ openstack flavor list
  1. تحقق من خدمة نيوترون

أنشئ شبكة:

$ openstack network create demo-net
$ openstack subnet create --network demo-net --subnet-range 10.0.0.0/24 demo-subnet

اعرض قائمة الشبكات:

$ openstack network list
  1. تحقق من خدمة سيندر

أنشئ قرصًا:

$ openstack volume create --size 1 demo-volume

اعرض قائمة الأقراص:

$ openstack volume list
  1. تحقق من لوحة تحكم هورايزون

افتح متصفحًا ويب وانتقل إلى http://<controller-ip>/dashboard. قم بتسجيل الدخول باستخدام اعتمادات المسؤول ال

6. الخلاصة

يمكن أن يكون التثبيت اليدوي لأوبن ستاك معقدًا بسبب عدد كبير من المكونات والاعتماديات الخاصة به. ومع ذلك، بإتباع هذا الدليل، يجب أن تتمكن من إعداد بيئة أوبن ستاك وظيفية.

للتخصيص والتوسع أكثر، راجع التوثيق الرسمي لأوبن ستاك ومصادر المجتمع.

نصائح لاستكشاف الأخطاء وإصلاحها

  • السجلات: تحقق دائمًا من السجلات الموجودة في /var/log/ للحصول على رسائل الخطأ المفصلة.
  • الشبكات: تأكد من صحة إعدادات الشبكة الخاصة بك وعدم وجود تضاربات.
  • الخدمات: استخدم systemctl لبدء وإيقاف وفحص حالة الخدمات.
  • قواعد البيانات: تأكد من اتصالات قواعد البيانات وأن الجداول تم ملؤها بشكل صحيح.

موارد إضافية

بإتباع هذه الخطوات، يجب أن يكون لديك بيئة أوبن ستاك عاملة مُعدة حسب احتياجاتك.

LEAVE A COMMENT