Установка и настройка¶
Установка¶
Важно
Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
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 | Зона доступности для запуска TRS машин. | nova |
api | audit_enabled | Включение журналирования запросов к службе aos-rs- server-api. | True |
api | host | Интерфейс для запуска службы aos-rs-server-api. | 0.0.0.0 |
api | logfile | Путь до лог файла службы aos-rs-server-api. | |
api | port | Порт для запуска службы aos-rs-server-api. | 9364 |
broker | allow_getvm_log | Включение логирования результатов запросов TRS машин из RSclient и веб-интерфейса TRS. Расположение и название файла: /var/log/aos/rs- server/trs_requests.log. | False |
broker | getvm_logfile | Путь к файлу сбора сообщений запросов TRS машин из RSclient и веб-интерфейса TRS. | |
broker | otp_sender_method | Способ отправки OTP пользователю. | telegram |
broker | power_state_monitor | Параметр, который включает проверку статуса питания виртуальной машины. | False |
broker | request_mode | Режим выбора для пользователя TRS машины. | single |
broker | request_pending_timeout | Пороговое время ожидания начала обработки запроса на получение TRS машины в секундах. | 60 |
broker | request_processing_timeout | Пороговое время ожидания выполнения запроса на получение TRS машины в секундах. Отсчитывается от времени обновления записи о запросе в базе данных. | 360 |
broker | requests_ttl | Время хранения запроса виртуальной машины в NoSQL базе данных Redis в секундах. | 3600 |
broker | security_group | Параметр, определяющий автоматическое создание группы безопасности для каждой TRS машины в момент подключения к ней в целях ограничения доступа не назначенных пользователей к TRS машине. | True |
broker | spice_enabled | Параметр, который разрешает RSclient получать адрес SPICE консоли вместе с IP-адресом виртуальной машины. | False |
broker_api | audit_enabled | Включение журналирования запросов к службе aos-rs- broker-api. | True |
broker_api | logfile | Путь до лог файла службы aos-rs-broker-api | |
broker_api | use_rs_token | Включение проверки наличия разрешения на подключения пользователя к гостевой операционной системе. | False |
broker_api | web_guard | Включение поддержки WebGuard. | False |
celery | task_retries | Колличество попыток Celery после неудачного запроса | 3 |
celery | task_timeout | Таймаут Celery задачи , при истечении происходит перезапуск задачи | 30 |
kerberos | script_path | Путь до скрипта смены пароля пользователя через Kerberos. | |
listener | after_delete_vm_script | Путь к скрипту, который выполняется при удалении виртуальной машины. Скрипт запускается от пользователя aos. | |
listener | cinder_rabbit_vhost | Виртуальный хост брокера сообщений службы Cinder. | / |
listener | keystone_rabbit_vhost | Виртуальный хост брокера сообщений службы Keystone. | / |
listener | logfile | Путь до лог файла службы aos-rs-listener. | |
listener | neutron_rabbit_vhost | Виртуальный хост брокера сообщений службы Neutron. | / |
listener | nova_rabbit_vhost | Виртуальный хост брокера сообщений службы Nova. | / |
project_sync | enabled | Параметр, который включает синхронизацию проектов. | True |
project_sync | logfile | Путь до лог файла службы синхронизации проектов. | |
project_sync | sync_interval | Интервал запуска синхронизации проектов (в секндах). | 600 |
web | compress_enabled | Включение сжатия статики. | True |
web | debug | Работа в режиме debug. | True |
web | memcache_location | Url адрес для доступа к системе кэширования. | 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