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

Установка

Примечание

Данное руководство описывает установку RemoteApp на Debian10.

Примечание

Для работы приложения необходмо иметь установленные и настроенные: Mariadb, Apache2 с плагином WSGI, Redis.

Важно

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

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

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

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

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

  2. Установите пакет RemoteApp:

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

    pip3 freeze > /tmp/rollback/remoteapp/pip_after.txt
    
  4. Настройте переменные окружения:

    export PIP_INDEX_URL=http://pypi.accentos.ru/simple/
    export PIP_TRUSTED_HOST=pypi.accentos.ru
    

Настройка

  1. Добавьте пользователя:

    adduser --system --group --disabled-login aos
    
  2. Создайте каталог для конфигурационных файлов с нужными правами:

    mkdir /etc/remoteapp
    chown -R aos:aos /etc/remoteapp
    
  3. Создайте каталог для файлов логов с нужными правами. Например:

    mkdir /var/log/remoteapp/
    chown -R aos:aos /var/log/remoteapp/
    
  4. Создайте каталог для файлов удаленного подключения с нужными правами. Например:

    mkdir /var/lib/remoteapp/
    chown -R aos:aos /var/lib/remoteapp/
    
  5. Создайте базу данных на примере MySQL, настройте права, тип базы и остальные параметры:

    # Зайдите в базу данных, используя пароль пользователя root
    mysql -uroot -p
    # Создайте базу данных remoteapp
    CREATE DATABASE remoteapp;
    # Дайте права на чтение, редактирование, выполнение любых действий над всеми таблицами базы данных remoteapp
    GRANT ALL PRIVILEGES ON remoteapp.* TO 'aos'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON remoteapp.* TO 'aos'@'%' IDENTIFIED BY 'password';
    # Осуществите выход из базы данных
    
  6. Выполните команду remoteapp-configure для настройки файлов служб systemd:

    remoteapp-configure
    
  7. Выполните миграцию базы данных:

    FLASK_APP=remoteapp.cloudapi.app flask db upgrade
    
  8. В конфигурационном файле укажите адрес облака, с которым будет работать приложение. При необходимости измените другие параметры.

  9. Включите и запустите службы systemd:

    systemctl daemon-reload
    systemctl enable ra-api.service
    systemctl start ra-api.service
    systemctl enable ra-listener.service
    systemctl start ra-listener.service
    
  10. Создайте шаблоны для формирования файлов. Для этого выполните следующие команды:

    ra-client create type type=mstsc template=default ext=rdp os_type=appv
    ra-client create pub type=win configure=windows ext=reg
    

    os_type – тип операционной системы, которая будет использоваться для подключения. Возможные варианты:

    • linux - для Linux приложений,
    • rdp - для получения рабочего стола Windows,
    • appv - для получения Windows приложения.
  11. Создайте симлинки на конфигурацию remoteapp для Apache:

    ln -s /etc/apache2/conf-available/remoteapp-web.conf /etc/apache2/conf-enabled/remoteapp-web.conf
    systemctl restart apache2
    
  12. После запуска служб функционал приложения доступен на порту 8080 через любой браузер:

    http://HOST_IP:8080
    

Файл конфигурации

Конфигурационный файл представлен в ini формате и состоит из следующих секций и параметров:

Секция Параметр Описание Значение по умолчанию
DEFAULT log_level Параметр, который указывает установленный уровень логирования. Подробное описание уровней доступно в разделе Уровни логирования. INFO
DEFAULT api_logfile Имя и путь до файла логирования. /var/log/remoteapp/api.log
DEFAULT db_url Настройка подключения к базе данных. mysql+pymysql://aos:password@localhost:3306/remoteapp
DEFAULT max_pool_size Наибольшее количество подключений, которые будут постоянно храниться в пуле. 5
DEFAULT max_overflow Максимальное количество дополнительных соединений, которые могут быть созданы при достижении предела максимального числа активных соединений. 50
DEFAULT pool_recycle Какой интервал времени (в секундах) должен пройти перед тем, как подключения к базе данных будут перезагружены. 3600
DEFAULT pool_timeout Сколько времени (в секундах) подключение к базе данных должно попытаться установить перед тем, как оно будет считаться неудачным. 30
DEFAULT retry_interval Какой интервал времени должен пройти перед повторной попыткой установить подключение к базе данных в случае неудачи. 2
DEFAULT max_retries Максимальное количество попыток установить подключение к базе данных. 5
DEFAULT cloud_url URL-адрес облака, с которым будет работать приложение. localhost
DEFAULT cloud_admin Имя пользователя для создания и регистрации приложений. remote
DEFAULT api_ip URL-адрес, на котором запущена служба API remoteapp. 127.0.0.1
DEFAULT api_port Порт, на котором запущена служба API remoteapp. 8001
DEFAULT templates Путь к шаблонам для формирования файлов удаленного коннекта. /etc/remoteapp/templates
DEFAULT ra_files Путь к файлам удаленного коннекта. /var/lib/remoteapp
DEFAULT redis_url Настройка подключения к Redis. redis://:password@localhost:6379/0
DEFAULT session_lifetime Длительность сессии Redis (в секундах). 86400
DEFAULT session_cookie_secure Установка secure флага для получения cookies браузера по HTTPS. False
DEFAULT messaging_url Строка подключения к RabbitMQ. amqp://aos:password@localhost:5672/aos
DEFAULT nova_rabbit_vhost Виртуальный хост RabbitMQ службы Nova. /