Установка и настройка

Установка

Важно

Сначала необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.

Режим суперпользователя:

sudo -i
  1. Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:

    mkdir -p /tmp/rollback/rs_server
    pip3 freeze > /tmp/rollback/rs_server/pip_before.txt
    

    После чего в каталоге /tmp/rollback/rs_server будет находиться файл pip_before.txt с перечнем установленных приложений.

  2. Также сохраните версии миграции:

    openstack aos db list -n rs_sever > /tmp/rollback/rs_server/migrations.txt
    

    Где:

    • /tmp/rollback/rs_server/ - директория файла;
    • migrations.txt - наименование файла с версиями миграций.
  3. Установите пакет RSserver:

    • из репозитория Python-пакетов:

      pip3 install rs-server
      
  4. Сохраните список установленных пакетов после установки для возможности отката изменений:

    pip3 freeze > /tmp/rollback/rs_server/pip_after.txt
    
  5. Добавьте пользователя aos:

    useradd -m aos
    passwd password
    

Примечание

Для установки RSserver на Astra Linux (Smolensk) выполните следующее:

  1. Подключите предоставленный Вам репозиторий с пакетами AccentOS.

  2. Установите пакет командой:

    sudo apt install -y aos-rs-server
    

Установка на двух и более контроллерах

При установке RSserver на двух и более контроллерах, необходимо:

  1. Реплицировать базу данных на каждый из контроллеров;
  2. Реплицировать брокер сообщений на каждый из контроллеров;
  3. Устанавливать модуль с одинаковыми параметрами на каждый из контроллеров.

Примечание

Удаление и диагностика модуля на каждом контроллере происходит таким же образом, как и в случае с одним контроллером.

Настройка

Примечание

Рассматривается настройка запуска API сервиса через WSGI-сервер, поставляемый вместе с библиотекой eventlet. Для настройки запуска сервиса через другой WSGI-сервер (Nginx + Gunicorn, Apache + mod_wsgi и др.) смотрите документацию соответствующего сервера. Путь до WSGI приложения: rs_server.api.api.wsgi.

  1. Выполните первичную настройку модуля:

    openstack aos configure -n rs_server
    

    При выполнении команды openstack aos configure -n rs_server:

    • производится копирование примеров файлов конфигураций в каталог /etc/aos/;
    • формируются конфигурационные файлы для веб-сервера Apache;
    • выполняется сборка статики для RSserver.
  2. Создайте каталог для логов с нужными правами:

    mkdir -p /var/log/aos/rs-server
    chown -R aos:aos /var/log/aos/rs-server
    
  3. Скопируйте образец конфигурационного файла, при использовании нестандартных параметров отредактируйте их:

    cp /etc/aos/aos.conf.example /etc/aos/aos.conf
    cp /etc/aos/rs_server.conf.example /etc/aos/rs_server.conf
    
  4. Создайте базу данных на примере 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';
    # Осуществите выход из базы данных
    
  5. Отредактируйте секцию [database] конфигурационного файла etc/aos/rs_server.conf, например:

    [database]
    url = mysql+pymysql://aos:password@tst.stand.loc:3306/rs_server?charset=utf8
    
  6. Выполните синхронизацию базы данных:

    openstack aos db migrate -n rs_server
    
  7. Настройте брокер сообщений RabbitMQ Server:

    rabbitmqctl add_user aos password
    rabbitmqctl add_vhost aos
    rabbitmqctl set_permissions -p aos aos ".*" ".*" ".*"
    rabbitmqctl set_permissions aos ".*" ".*" ".*"
    
  8. Создайте сервис RSserver API:

    openstack service create --name rs-server --description "RSserver Service" rs-server
    
  9. Создайте точки входа (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
    
  10. Создайте пользователя в OpenStack для API сервисов:

    openstack user create --domain default --project service --project-domain default --password password --or-show aos
    
  11. Назначьте пользователю роль service:

    openstack role add --user aos --user-domain default --project service --project-domain default service
    
  12. Включите и запустите службы 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
    
  13. Настройте службы Nova на всех контроллерах и вычислительных узлах, для синхронизации виртуальных машин (в файле конфигурации /etc/nova/nova.conf):

    [oslo_messaging_notifications]
    driver = messagingv2
    
  14. Настройте службы Keystone на всех контроллерах, для синхронизации проектов (в файле конфигурации /etc/keystone/keystone.conf):

    [oslo_messaging_notifications]
    driver = messagingv2
    
  15. Настройте службы Neutron на всех контроллерах, для синхронизации плавающих IP-адресов (в файле конфигурации /etc/neutron/neutron.conf):

    [DEFAULT]
    notification_driver = messagingv2
    
  16. Настройте службы Cinder на всех узлах, для синхронизации назначений дисков пользователям (в файле конфигурации /etc/cinder/cinder.conf):

    [DEFAULT]
    notification_driver = messagingv2
    
  17. Создайте симлинк на поставляемый конфигурационный файл Apache и перезапустите веб сервера:

    # Debian:
    ln -s /etc/apache2/conf-available/aos-rs-web.conf /etc/apache2/conf-enabled/aos-rs-web.conf
    service apache2 restart
    

    Примечание

    Необходимо убедиться в корректности конфигурационного файла: проверить пути к установленным модулям, пути к логам, соответствие директив установленной версии Apache.

  18. Перезапустите службы 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 выполните возврат к исходному состоянию:

  1. Сравните версии миграций в файле /tmp/rollback/rs_server/migrations.txt с текущими. При наличии отличий произведите миграцию на предыдущую версию. Пример миграции:

    openstack aos db list -n rs_server
    openstack aos db migrate -n rs_server --migration 14
    
  2. Произведите возврат к предыдущему состоянию пакетов:

    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