Установка и настройка¶
Важно
Вначале необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Установка¶
Перед началом установки сохраните список установленных ранее пакетов, это позволит безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/tionix_rollback/vdi_server pip freeze > /tmp/tionix_rollback/vdi_server/pip_before.txt
После чего в каталоге
/tmp/tionix_rollback/vdi_server
будет находиться файлpip_before.txt
с перечнем установленных приложений.Также сохраните версии миграции:
openstack tnx db list -n tnx_vdi_sever > /tmp/tionix_rollback/vdi_server/migrations.txt
Где:
/tmp/tionix_rollback/vdi_server/
- директория файла;migrations.txt
- наименование файла с версиями миграций.
Установите пакет TIONIX.VDIserver:
из репозитория Python-пакетов:
# Ubuntu, CentOS: pip install tionix-vdi-server
из репозитория RPM пакетов:
# ALT Linux 7: apt-get -y install python-module-tionix_vdi_server # CentOS: yum -y install python-tionix_vdi_server
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip freeze > /tmp/tionix_rollback/vdi_server/pip_after.txt
Добавьте пользователя
tionix
:useradd -m tionix passwd tionix
Установка на двух и более контроллерах¶
При установке 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
Назначьте пользователю роль service:
openstack role add --user tionix --user-domain default --project service --project-domain default service
Включите и запустите службы 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
Настройте службы 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
Создайте симлинк на поставляемый конфигурационный файл Apache и перезапустите веб сервера:
# Ubuntu: ln -s /etc/apache2/conf-available/tionix-vdi-server.conf /etc/apache2/conf-enabled/tionix-vdi-web.conf service apache2 restart # ALT Linux 7: ln -s /etc/httpd2/conf/sites-available/tionix-vdi-server.conf /etc/httpd2/conf/sites-enabled/tionix-vdi-web.conf systemctl restart httpd2
Примечание
Необходимо убедиться в корректности конфигурационного файла: проверить пути к установленным модулям, пути к логам, соответствие директив установленной версии Apache.
Перезапустите службы Nova и Neutron, данное действие необходимо для включения уведомлений:
# Ubuntu: service nova-api restart service neutron-server restart # ALT Linux 7: systemctl restart openstack-nova-api systemctl restart neutron-server # CentOS: 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 |
DEFAULT_AVAILABILITY_ZONE |
Зона доступности для запуска VDI машин. | nova |
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 |
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 |
Путь к скрипту, который выполняется при удалении виртуальной машины. Скрипт запускается от пользователя Важно Скрипту передаются позиционные аргументы в следующем порядке: имя домена, имя виртуальной машины. |
Важно
При изменении параметров файла конфигурации для вступления их в силу необходимо произвести процедуру, описанную в разделе «Обновление файла конфигурации».
План восстановления¶
В случае неудачной установки или обновления модуля TIONIX.VDIserver выполните возврат к исходному состоянию:
Сравните версии миграций в файле
/tmp/tionix_rollback/vdi_server/migrations.txt
с текущими. При наличии отличий произведите миграцию на предыдущую версию. Пример миграции:openstack tnx db list -n tnx_vdi_server openstack tnx db migrate -n tnx_vdi_server --migration 14
Произведите возврат к предыдущему состоянию пакетов:
cd /tmp/tionix_rollback/vdi_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 pip uninstall -r pip_uninstall.txt pip install -r pip_install.txt