Установка и настройка¶
Установка¶
Важно
Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/rollback/rs_server pip3 freeze > /tmp/rollback/rs_server/pip_before.txt
После чего в каталоге
/tmp/rollback/rs_server
будет находиться файлpip_before.txt
с перечнем установленных приложений.Также сохраните версии миграции:
openstack aos db list -n rs_sever > /tmp/rollback/rs_server/migrations.txt
Где:
/tmp/rollback/rs_server/
- директория файла;migrations.txt
- наименование файла с версиями миграций.
Установите пакет RSserver:
из репозитория Python-пакетов:
pip3 install rs-server
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip3 freeze > /tmp/rollback/rs_server/pip_after.txt
Добавьте пользователя
aos
:useradd -m aos passwd password
Примечание
Для установки RSserver на Astra Linux (Smolensk) выполните следующее:
Подключите предоставленный Вам репозиторий с пакетами AccentOS.
Установите пакет командой:
sudo apt install -y aos-rs-server
Установка на двух и более контроллерах¶
При установке RSserver на двух и более контроллерах, необходимо:
- Реплицировать базу данных на каждый из контроллеров;
- Реплицировать брокер сообщений на каждый из контроллеров;
- Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.
Примечание
Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.
Настройка¶
Примечание
Рассматривается настройка запуска API сервиса через WSGI-сервер, поставляемый вместе с библиотекой eventlet
. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: rs_server.api.api.wsgi
.
Выполните первичную настройку модуля:
openstack aos configure -n rs_server
При выполнении команды
openstack aos configure -n rs_server
:- производится копирование примеров файлов конфигураций в каталог
/etc/aos/
; - формируются конфигурационные файлы для веб-сервера Apache;
- выполняется сборка статики для RSserver.
- производится копирование примеров файлов конфигураций в каталог
Создайте каталог для логов с нужными правами:
mkdir -p /var/log/aos/rs-server chown -R aos:aos /var/log/aos/rs-server
Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их:
cp /etc/aos/aos.conf.example /etc/aos/aos.conf cp /etc/aos/rs_server.conf.example /etc/aos/rs_server.conf
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте базу данных rs_server CREATE DATABASE rs_server; # Дайте права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных rs_server GRANT ALL PRIVILEGES ON rs_server.* TO 'aos'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON rs_server.* TO 'aos'@'%' IDENTIFIED BY 'password'; # Осуществите выход из базы данных
Отредактируйте секцию
[database]
конфигурационного файлаetc/aos/rs_server.conf
, например:[database] url = mysql+pymysql://aos:password@tst.stand.loc:3306/rs_server?charset=utf8
Выполните синхронизацию базы данных:
openstack aos db migrate -n rs_server
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user aos password rabbitmqctl add_vhost aos rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*" rabbitmqctl set_permissions aos ".*" ".*" ".*"
Создайте сервис RSserver API:
openstack service create --name rs-server --description "RSserver Service" rs-server
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne rs-server internal http://controller:9364 openstack endpoint create --region RegionOne rs-server admin http://controller:9364 openstack endpoint create --region RegionOne rs-server public http://controller:9364
Создайте пользователя в OpenStack для API сервисов:
openstack user create --domain default --project service --project-domain default --password password --or-show aos
Назначьте пользователю роль service:
openstack role add --user aos --user-domain default --project service --project-domain default service
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable aos-rs-server-api.service systemctl start aos-rs-server-api.service systemctl enable aos-rs-broker-api.service systemctl start aos-rs-broker-api.service systemctl enable aos-rs-listener.service systemctl start aos-rs-listener.service systemctl enable aos-rs-beat.service systemctl start aos-rs-beat.service systemctl enable aos-rs-worker.service systemctl start aos-rs-worker.service
Настройте службы Nova на всех контроллерах и вычислительных узлах, для синхронизации виртуальных машин (в файле конфигурации
/etc/nova/nova.conf
):[oslo_messaging_notifications] driver = messagingv2
Настройте службы Keystone на всех контроллерах, для синхронизации проектов (в файле конфигурации
/etc/keystone/keystone.conf
):[oslo_messaging_notifications] driver = messagingv2
Настройте службы Neutron на всех контроллерах, для синхронизации плавающих IP-адресов (в файле конфигурации
/etc/neutron/neutron.conf
):[DEFAULT] notification_driver = messagingv2
Настройте службы Cinder на всех узлах, для синхронизации назначений дисков пользователям (в файле конфигурации
/etc/cinder/cinder.conf
):[DEFAULT] notification_driver = messagingv2
Создайте симлинк на поставляемый конфигурационный файл Apache и перезапустите веб сервера:
# Debian: ln -s /etc/apache2/conf-available/aos-rs-web.conf /etc/apache2/conf-enabled/aos-rs-web.conf service apache2 restart
Примечание
Необходимо убедиться в корректности конфигурационного файла: проверить пути к установленным модулям, пути к логам, соответствие директив установленной версии Apache.
Перезапустите службы Nova и Neutron, данное действие необходимо для включения уведомлений:
# Debian: systemctl restart nova-api.service systemctl restart neutron-server.service
Настройка сервиса RS broker API¶
По умолчанию для запуска сервиса используется WSGI-сервер gunicorn
. Для настройки альтернативного сервера используйте следующие параметры:
Путь до WSGI-приложения:
rs_server.api.broker_api.wsgi:application
;WSGI-файл:
# Ubuntu, Debian: ``/usr/local/bin/aos-rs-broker-wsgi``.
Файл конфигурации¶
Примечание
Файл конфигурации позволяет переопределять секции и параметры общего файла aos.conf
для конкретного модуля.
Примечание
По умолчанию в файле rs_server.conf.example
строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в ini
формате и состоит из следующих секций и параметров:
Секция | Параметр | Описание | Значение по умолчанию |
---|---|---|---|
DEFAULT | default_availability_zone | Availability zone for launching TRS instances. | nova |
api | audit_enabled | Enabling logging of requests to aos-rs-server-api service. | True |
api | host | aos-rs-server-api service start host. | 0.0.0.0 |
api | logfile | Path to log file of aos-rs-server-api service. | |
api | port | Port to start aos-rs-server-api service. | 9364 |
broker | allow_getvm_log | Enabling logging of the results of TRS instances requests from the RSclient and TRS web interface. File name is :/var/log/aos/rs- server/trs_requests.log | False |
broker | getvm_logfile | Path to the file for collecting TRS instances requests messages from RSclient and TRS web interface. | |
broker | otp_sender_method | Method of sending OTP to user. | telegram |
broker | power_state_monitor | Option that enables checking the power status of the instance. | False |
broker | request_mode | Selection mode for TRS instance user. | single |
broker | request_pending_timeout | Threshold waiting time for the start of processing a request to receive TRS instances in seconds. | 60 |
broker | request_processing_timeout | Threshold waiting time for request to get the TRS instance in seconds. It is counted from the time query record was updated in the database. | 360 |
broker | requests_ttl | Time to store instance query in NoSQL Redis database in seconds. | 3600 |
broker | security_group | Parameter that determines the automatic creation of a security group for each TRS instance at the time of connecting to it in order to restrict access of unassigned users to TRS instance. | True |
broker | spice_enabled | Parameter that allows the RSclient to receive the SPICE console address of with the IP address of instance. | False |
broker_api | audit_enabled | Enabling logging of requests to aos-rs-broker-api service. | True |
broker_api | logfile | Path to log file of aos-rs-broker-api service. | |
broker_api | use_rs_token | Enabling checking for permission to connect user to the guest operating system. | False |
broker_api | web_guard | Enabling WebGuard support. | False |
broker_api | web_guard_redirect_response | Response code for webguard redirected request. | 302 |
kerberos | script_path | Path to the script for changing the user’s password via Kerberos. | |
listener | after_delete_vm_script | Path to the script that is executed when instance is deleted. The script is run from the user aos. | |
listener | cinder_rabbit_vhost | Virtual host of Cinder service message broker. | / |
listener | durability | Durability of RabbitMQ queue and exchange. | True |
listener | keystone_rabbit_vhost | Virtual host of Keystone service message broker. | / |
listener | logfile | Path to log file of aos-rs-listener service. | |
listener | neutron_rabbit_vhost | Virtual host of Neutron service message broker. | / |
listener | nova_rabbit_vhost | Virtual host of Nova service message broker. | / |
project_sync | enabled | Option that enables project synchronization. | True |
project_sync | logfile | Path to log file of project synchronization service. | |
project_sync | sync_interval | Project synchronization start interval (in seconds). | 600 |
web | compress_enabled | Enabling static compression. | True |
web | debug | Debug mode. | True |
web | memcache_location | Url address to access the caching system. | localhost:11211 |
Важно
При изменении параметров файла конфигурации, для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
План восстановления¶
В случае неудачной установки или обновления модуля RSserver выполните возврат к исходному состоянию:
Сравните версии миграций в файле
/tmp/rollback/rs_server/migrations.txt
с текущими. При наличии отличий произведите миграцию на предыдущую версию. Пример миграции:openstack aos db list -n rs_server openstack aos db migrate -n rs_server --migration 14
Произведите возврат к предыдущему состоянию пакетов:
cd /tmp/rollback/rs_server diff --changed-group-format='%>' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_uninstall.txt diff --changed-group-format='%<' --unchanged-group-format='' pip_before.txt pip_after.txt > pip_install.txt pip3 uninstall -r pip_uninstall.txt pip3 install -r pip_install.txt