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

Установка

Примечание

Данное руководство описывает установку 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.

/