Установка и настройка¶
Важно
Вначале необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Установка¶
Установите модуль TIONIX.VDIserver из репозитория RPM-пакетов:
yum -y install python3-tionix_vdi_server
Установка на двух и более контроллерах¶
При установке TIONIX.VDIserver на двух и более контроллерах, необходимо:
- Реплицировать базу данных на каждый из контроллеров;
- Реплицировать брокер сообщений на каждый из контроллеров;
- Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.
Примечание
Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.
Настройка¶
Примечание
Рассматривается настройка запуска API сервиса через WSGI-сервер, поставляемый вместе с библиотекой eventlet
. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: tionix_vdi_server.api.vdi_server_api.wsgi
.
Выполните первичную настройку модуля:
openstack tnx configure -n tnx_vdi_server tnx_client
При выполнении команды
openstack tnx configure -n tnx_vdi_server tnx_client
:- производится копирование примеров файлов конфигураций в каталог
/etc/tionix/
; - формируются конфигурационные файлы для веб-сервера Apache;
- выполняется сборка статики для TIONIX.VDIserver.
Для запуска сбора статики для TIONIX.VDIserver вручную необходимо выполнить команды:
python /usr/share/openstack-dashboard/manage.py collectstatic --settings=tionix_vdi_server.django_settings python /usr/share/openstack-dashboard/manage.py compress --settings=tionix_vdi_server.django_settings
- производится копирование примеров файлов конфигураций в каталог
Создайте каталог для логов с нужными правами:
mkdir -p /var/log/tionix/vdi-server chown -R tionix:tionix /var/log/tionix/vdi-server
Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их:
cp /etc/tionix/vdi_server.yaml.example /etc/tionix/vdi_server.yaml
Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:
# Зайдите в базу данных, используя пароль пользователя root mysql -uroot -p # Создайте пользователя tionix c паролем password CREATE USER 'tionix'@'localhost' IDENTIFIED BY 'password'; # Создайте базу данных tionix_vdi_server CREATE DATABASE tionix_vdi_server; # Дайте пользователю права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных tionix_vdi_server GRANT ALL PRIVILEGES ON tionix_vdi_server.* TO 'tionix'@'localhost'; # Осуществите выход из базы данных
Выполните синхронизацию базы данных:
openstack tnx db migrate -n tnx_vdi_server
Настройте брокер сообщений RabbitMQ Server:
rabbitmqctl add_user tionix password rabbitmqctl add_vhost tionix rabbitmqctl set_permissions -p tionix tionix ".*" ".*" ".*" rabbitmqctl set_permissions tionix ".*" ".*" ".*"
Создайте сервис VDIserver API:
openstack service create --name tnx-vdi --description "TIONIX VDIserver Service" tnx-vdi
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne tnx-vdi internal http://controller:9364 openstack endpoint create --region RegionOne tnx-vdi admin http://controller:9364 openstack endpoint create --region RegionOne tnx-vdi public http://controller:9364
Создайте пользователя в OpenStack для API сервисов:
openstack user create --domain default --project service --project-domain default --password password --or-show tionix
Назначьте пользователю роль admin:
openstack role add --user tionix --user-domain default --project service --project-domain default admin
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable tionix-vdi-server-api.service systemctl start tionix-vdi-server-api.service systemctl enable tionix-vdi-broker-api.service systemctl start tionix-vdi-broker-api.service systemctl enable tionix-vdi-keystone-listener.service systemctl start tionix-vdi-keystone-listener.service systemctl enable tionix-vdi-nova-listener.service systemctl start tionix-vdi-nova-listener.service systemctl enable tionix-vdi-neutron-listener.service systemctl start tionix-vdi-neutron-listener.service systemctl enable tionix-vdi-project-syncer.service systemctl start tionix-vdi-project-syncer.service systemctl enable tionix-vdi-worker.service systemctl start tionix-vdi-worker.service systemctl enable tionix-vdi-user-syncer.service systemctl start tionix-vdi-user-syncer.service
Перезапустите службы TIONIX:
systemctl restart tionix-*
Настройте службы 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] driver = messagingv2
Примечание
Необходимо убедиться в корректности конфигурационного файла: проверить пути к установленным модулям, пути к логам, соответствие директив установленной версии Apache.
Важно
При установке модуля на двух и более контроллерах необходимо использовать одинаковые ключи безопасности на всех управляющих узлах:
Команда для генерации ключа:
openssl rand -hex 32
Путь, по которому необходимо сохранить ключ -
/etc/tionix/.vdi_server_secret_key
.
Перезапустите службы Nova и Neutron, данное действие необходимо для включения уведомлений:
systemctl restart openstack-nova-api systemctl restart neutron-server
Настройка сервиса VDI broker API¶
По умолчанию для запуска сервиса используется WSGI-сервер gunicorn
. Для настройки альтернативного сервера используйте следующие параметры:
- Путь до WSGI-приложения:
tionix_vdi_server.api.vdi_broker_api.wsgi:application
; - WSGI-файл:
/usr/bin/tnx-vdi-broker-wsgi
.
Файл конфигурации¶
Примечание
По умолчанию в файле vdi_server.yaml.example
строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в yaml
формате и состоит из следующих секций и параметров:
Параметр | Описание | Значение по умолчанию |
---|---|---|
DB |
Настройки базы данных:
|
tionix_vdi_server |
DEBUG |
Работа в режиме
Значения являются регистронезависимыми. |
False |
COMPRESS_ENABLED |
Включение сжатия статики. Допустимые значения:
Значения являются регистронезависимыми. |
True |
REQUEST_MODE |
Режим выбора для пользователя VDI машины. Возможные значения:
Значения являются регистронезависимыми. |
single |
SECURITY_GROUP |
Параметр, определяющий автоматическое создание группы безопасности для каждой VDI машины в момент подключения к ней в целях ограничения доступа неназначенных пользователей к VDI машине. Необязательный параметр. Допустимые значения:
Значения являются регистронезависимыми. |
True |
USE_VDI_TOKEN |
Включение проверки наличия разрешения на подключения пользователя к гостевой операционной системе. Допустимые значения:
Значения являются регистронезависимыми. |
False |
SENTRY |
Настройки логирования Sentry, где:
|
|
ALLOW_GETVM_LOG |
Включение логирования результатов запросов VDI машин из VDI клиента и веб-интерфейса VDI. Расположение и название файла:
Значения являются регистронезависимыми. |
True |
MEMCACHE_LOCATION |
Url адрес для доступа к системе кэширования. | localhost:11211 |
VDI_SERVER_API_LISTEN |
IP-адрес, на котором будет запущена служба VDI Server API. | 0.0.0.0 |
VDI_SERVER_API_LISTEN_PORT |
Порт, на котором будет запущена служба VDI Server API. | 9364 |
VDI_SERVER_API_LOGFILE |
Путь до лог файла службы tionix-vdi-server-api . |
/var/log/tionix/vdi-server/vdi-server-api.log |
VDI_BROKER_API_LOGFILE |
Путь до лог файла службы tionix-vdi-broker-api . |
/var/log/tionix/vdi-server/vdi-broker-api.log |
VDI_KEYSTONE_LISTENER_LOGFILE |
Путь до лог файла службы tionix-vdi-keystone-listener . |
/var/log/tionix/vdi-server/keystone-listener.log |
VDI_NOVA_LISTENER_LOGFILE |
Путь до лог файла службы tionix-vdi-nova-listener . |
/var/log/tionix/vdi-server/nova-listener.log |
VDI_NEUTRON_LISTENER_LOGFILE |
Путь до лог файла службы tionix-vdi-neutron-listener . |
/var/log/tionix/vdi-server/neutron-listener.log |
VDI_WORKER_LOGFILE |
Путь до лог файла службы tionix-vdi-worker . |
/var/log/tionix/vdi-server/worker.log |
VDI_PROJECT_SYNCER_LOGFILE |
Путь до лог файла службы tionix-vdi-project-syncer . |
/var/log/tionix/vdi-server/project-syncer.log |
VDI_USER_SYNCER_LOGFILE |
Путь до лог файла службы tionix-vdi-user-syncer . |
/var/log/tionix/vdi-server/user-syncer.log |
REQUEST_PENDING_TIMEOUT |
Пороговое время ожидания начала обработки запроса на получение VDI машины в секундах. | 60 |
REQUEST_PROCESSING_TIMEOUT |
Пороговое время ожидания выполнения запроса на получение VDI машины в секундах. Отсчитывается от времени обновления записи о запросе в базе данных. | 360 |
WEB_GUARD |
Включение поддержки WebGuard. Допустимые значения:
Значения являются регистронезависимыми. |
False |
INSTANCE_NAME_PATTERN |
Наименование префикса имени VDI машины, которое будет по умолчанию присваиваться всем VDI машинам проекта. Имеет обязательные требования:
При помощи символа Примечание Значение не чувствительно к регистру. |
|
VDI_GETVM_LOGFILE |
Путь к файлу сбора сообщений запросов VDI машин от VDI клиента и веб-интерфейса VDI. | /var/log/tionix/vdi-server/tionix_lntmov.log |
AFTER_DELETE_VM_SCRIPT_PATH |
Путь к скрипту, который выполняется при удалении виртуальной машины. Скрипт запускается от пользователя Важно Скрипту передаются позиционные аргументы в следующем порядке: имя домена, имя виртуальной машины. |
|
HAPROXY_TCP_REQUEST_TIMEOUT |
Таймаут ответа от HAProxy. Измеряется в миллисекундах. | 3000 |
VDI_TLS_ENABLED |
Включение аутентификации по CA сертификату. Доступные значения:
|
False |
TLS_SERVER_CERT |
Путь к серверному сертификату. | /etc/pki/tls/tionix/vdi.pem |
CA_CERT |
Путь к CA сертификату. |
Дополнительные параметры:
Параметр | Описание | Значение по умолчанию |
---|---|---|
KERBEROS |
Параметр для выполнения одновременной смены пароля OpenLDAP и Kerberos:
|
|
TRACEBACK_ENABLED |
Параметр для вывода трассировки ошибки при логировании. Допустимые значения:
Значения являются регистронезависимыми. |
False |
Важно
При изменении параметров файла конфигурации для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».