Исчерпывающее руководство по установке OpenStack вручную в Linux

Оглавление

  1. Введение
  2. Предварительные условия
  3. Настройка среды
  4. Установка и настройка компонентов OpenStack
    • Keystone (служба идентификации)
    • Glance (служба изображений)
    • Nova (служба вычислений)
    • Neutron (сетевая служба)
    • Cinder (служба хранения блоков)
    • Horizon (приборная панель)
  5. Проверка и устранение неполадок
  6. Заключение

1. Введение

OpenStack это платформа с открытым исходным кодом, используемая для создания и управления публичными и частными облаками. В этом руководстве мы рассмотрим ручную установку OpenStack на сервер Linux.

2. Предварительные условия

Убедитесь, что ваша система соответствует следующим предварительным условиям:

  • Чистая установка поддерживаемого дистрибутива Linux (например, Ubuntu 20.04 LTS или CentOS 8).
  • Не менее 8 ГБ оперативной памяти и 2 процессора.
  • Root или sudo доступ.
  • Правильно настроенные сетевые параметры.

3. Настройка среды

Обновление и модернизация системы

$ sudo apt update && sudo apt upgrade -y

Установка основных пакетов

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

4. Установка и настройка компонентов OpenStack

a. Keystone (служба идентификации)

  1. Установите Keystone
$ sudo apt install -y keystone
  1. Настройте Keystone

Отредактируйте /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. Настройка HTTP-сервера Apache

Отредактируйте файл /etc/apache2/apache2.conf файл:

$ sudo nano /etc/apache2/apache2.conf

Добавьте следующее:

ServerName controller

Включите службы Apache и WSGI:

$ sudo service apache2 restart

b. Glance (служба изображений)

  1. Установите Glance
$ sudo apt install -y glance
  1. Настройте Glance

Отредактируйте файл /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. Перезапустите службу Glance
$ sudo service glance-api restart

c. Nova (служба вычислений)

  1. Установите Nova
$ sudo apt install -y nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler
  1. Настройка Nova

Отредактируйте /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. Перезапустите службы Nova
$ sudo service nova-api restart
$ sudo service nova-scheduler restart
$ sudo service nova-conductor restart
$ sudo service nova-novncproxy restart

d. Neutron (сетевая служба)

  1. Установите Neutron
$ sudo apt install -y neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-dhcp-agent neutron-metadata-agent
  1. Настройка Neutron

Отредактируйте файл /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. Перезапуск служб Neutron
$ sudo service neutron-server restart
$ sudo service neutron-linuxbridge-agent restart
$ sudo service neutron-dhcp-agent restart
$ sudo service neutron-metadata-agent restart

e. Cinder (служба хранения блоков)

  1. Установите Cinder
$ sudo apt install -y cinder-api cinder-scheduler
  1. Настройте Cinder

Отредактируйте файл /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. Перезапуск служб Cinder
$ sudo service cinder-api restart
$ sudo service cinder-scheduler restart

f. Горизонт (приборная панель)

  1. Установите Horizon
$ sudo apt install -y openstack-dashboard
  1. Настройте Horizon

Отредактируйте /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. Проверка состояния обслуживания

Убедитесь, что все службы OpenStack запущены:

$ sudo systemctl status <service-name>
  1. Проверка службы Keystone

Пройдите аутентификацию с помощью интерфейса командной строки OpenStack:

$ 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

Проверьте службу Keystone:

$ openstack token issue
  1. Проверьте службу Glance

Загрузите образец изображения:

$ 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. Проверка службы Nova

Создайте аромат:

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

Список ароматов:

$ openstack flavor list
  1. Проверка службы Neutron

Создайте сеть:

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

Список сетей:

$ openstack network list
  1. Проверка службы Cinder

Создайте том:

$ openstack volume create --size 1 demo-volume

Список томов:

$ openstack volume list
  1. Проверка панели управления Horizon Dashboard

Откройте веб-браузер и перейдите по адресу http://<controller-ip>/dashboard. Войдите в систему, используя учетные данные администратора.

6. Заключение

Ручная установка OpenStack может быть сложной из-за многочисленных компонентов и зависимостей. Однако, следуя этому руководству, вы сможете установить функциональную среду OpenStack.

Для дальнейшей настройки и масштабирования обратитесь к официальной документации OpenStack и ресурсам сообщества.

Советы по устранению неполадок

  • Журналы: Всегда проверяйте журналы, расположенные в /var/log/ для получения подробных сообщений об ошибках.
  • Работа в сети: Убедитесь в правильности конфигурации сети и отсутствии конфликтов.
  • Услуги: Используйте systemctl для запуска, остановки и проверки состояния служб.
  • Базы данных: Проверьте подключение к базе данных и правильность заполнения таблиц.

Дополнительные ресурсы

Выполнив эти шаги, вы получите рабочую среду OpenStack, соответствующую вашим потребностям.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *