Параметры конфигурирования компонента

Параметры Шлюза задаются переменными, описанными в файле /etc/opt/termidesk-vdi/termidesk.conf, а также аргументами командной строки.

Перечень доступных переменных и аргументов приведен в таблице.

Информация в таблице относится к ранее установленному с Termidesk Шлюзу termidesk-wsproxy.

Доступные переменные Шлюза

Наименование переменнойЗначение по умолчаниюОписаниеАргумент командной строки
WSPROXY_PORT 5099 Порт прослушивания службы Не задан
WSPROXY_BIND_ADDRESS 127.0.0.1 Адрес прослушивания службы. При распределенной установке необходимо использовать значение 0.0.0.0, чтобы порт 5099 прослушивался не только localhost, если планируется принимать запросы на подключения с внешних систем (например, с балансировщиков нагрузки) Не задан
WSPROXY_HEALTH_CHECK_PORT 8101

Порт веб-сервера для обслуживания API-запросов по состоянию Шлюза (healthcheck).

По умолчанию переменная не используется (закомментирована)

Не задан
WSPROXY_HEALTH_CHECK_CERT /etc/opt/termidesk-vdi/wsproxy-healthcheck.pem

Путь к сертификату (открытому ключу), который используется для защиты подключения API-запросов по состоянию Шлюза (healthcheck).

По умолчанию переменная не используется (закомментирована).

Примечание: сертификат - артефакт, содержащий информацию о владельце ключа и подтверждающий принадлежность ключа владельцу

Не задан
WSPROXY_HEALTH_CHECK_KEY /etc/opt/termidesk-vdi/wsproxy-healthcheck.key

Путь к закрытому ключу, который используется для защиты подключения API-запросов по состоянию Шлюза (healthcheck).

По умолчанию переменная не используется (закомментирована).

Примечание: ключ - последовательность псевдослучайных чисел, сгенерированная особым образом

Не задан
LOG_LEVEL INFO

Аргумент командной строки применяется для изменения уровня логирования Шлюза. Изначально уровень логирования применяется из значения переменной LOG_LEVEL конфигурационного файла  /etc/opt/termidesk-vdi/termidesk.conf. Для того чтобы применить уровень логирования из аргумента командной строки, необходимо отредактировать unit-файл службы Шлюза:

  • открыть для редактирования файл /lib/systemd/system/termidesk-wsproxy.service;

  • найти строку, начинающуюся с ExecStart и добавить ключ --loglevel с нужным уровнем.

Пример строки:

ExecStart=/opt/termidesk/share/termidesk-vdi/venv/bin/python wsproxy.py --verification-key=/etc/opt/termidesk-vdi/wsproxy/id_rsa.pub --host=${WSPROXY_BIND_ADDRESS} --port=${WSPROXY_PORT} --loglevel=INFO

Затем выполнить перезапуск конфигурации и службы:

  • выполнить команду sudo systemctl daemon-reload;
  • выполнить команду  sudo systemctl restart termidesk-wsproxy.
--loglevel
Далее информация относится к новому (экспериментальному) Шлюзу termidesk-gateway.

Параметры конфигурирования нового Шлюза задаются из конфигурационного файла /etc/termidesk/termidesk-gateway.conf при условии определения переменных в файле /lib/systemd/system/termidesk-gateway.service.

При необходимости переопределить параметры запуска Шлюза через интерфейс командной строки, необходимо сначала остановить службу:

:~$ sudo systemctl stop termidesk-gateway
BASH

Помимо аргументов командной строки параметры запуска службы могут быть переопределены в unit-файле службы termidesk- gateway /lib/systemd/system/termidesk-gateway.service.

Пример файла /lib/systemd/system/termidesk-gateway.service

[Unit]
Description=Termidesk Gateway
After=network.target
[Service]
Environment=wsServerIP=0.0.0.0
Environment=wsServerPort=5099
Environment=urlCheckToken=http: /127.0.0.1:8000/api/wsproxy/v1/verify
Environment=gatewayLogMode="-l"
Environment=wsIdleTimeout=30
Environment=mgtServerIP=0.0.0.0
Environment=mgtServerPort=8444
Environment=wssServerIP=0.0.0.0
Environment=wssServerPort=8443
Environment=sslKey=/etc/termidesk/ssl-cert-snakeoil.key
Environment=sslCert=/etc/termidesk/ssl-cert-snakeoil.pem
Environment=healthCheckAccessKey=a0e08d1b0e95dfea4f431d5849b934e09ac5067b
EnvironmentFile=-/etc/termidesk/termidesk-gateway.conf
Restart=on-failure
RestartSec=5
User=termidesk-gateway
Group=termidesk-gateway
ExecStart=/usr/bin/termidesk-gateway ${gatewayLogMode} \
-wsServerIP=${wsServerIP} -wsServerPort=${wsServerPort} \
-urlCheckToken=${urlCheckToken} -wsIdleTimeout=${wsIdleTimeout} \
-mgtServerIP=${mgtServerIP} -mgtServerPort=${mgtServerPort} \
-healthCheckAccessKey=${healthCheckAccessKey} \
-wssServerIP=${wssServerIP} \
-wssServerPort=${wssServerPort} \
-sslKey=/etc/termidesk/ssl-cert-snakeoil.key \
-sslCert=/etc/termidesk/ssl-cert-snakeoil.pem
[Install]
WantedBy=multi-user.target
BASH

Для задания параметров конфигурирования нового Шлюза из файла необходимо:

  • создать каталог /etc/termidesk/, если его нет:
:~$ sudo mkdir /etc/termidesk/
BASH
  • создать пустой файл /etc/termidesk/ termidesk-gateway.conf:
:~$ sudo touch /etc/termidesk/termidesk-gateway.conf
BASH
  • отредактировать файл termidesk-gateway.conf, указав необходимые значения для параметров:
# Адреса, на которых принимать входящие подключения
wsServerIP=0.0.0.0
# Прослушиваемый порт для входящих подключений
wsServerPort=5099
# Адрес брокера, по которому будет осуществляться проверка пользовательских подключений в случае комплексной установки
# Если программный комплекс Termidesk установлен в распределенном варианте, вместо 127.0.0.1 следует указать адрес балансировщика 
urlCheckToken=https://127.0.0.1/api/wsproxy/v1/verify 
# Интервал установки соединения (в секундах)
wsIdleTimeout=30
# Режим журналирования. 
gatewayLogMode=-l - включить отладку уровня INFO.
# gatewayLogMode="-d" - включить отладку уровня DEBUG.
# Пустое значение параметра gatewayLogMode= - выключить отладку.
# Адрес для доступа к API
# Если нужно, чтобы доступ был у внешних систем, то вместо 127.0.0.1 следует указать 0.0.0.0
mgtServerIP=127.0.0.1
# Порт для доступа к API
mgtServerPort=8102
# Ключ доступа для аутентификации запросов к API. Указание значения ключа обязательно
# При задании ключа его размер должен составлять от 0 до 64 символа, должны использоваться символы в шестнадцатеричной системе (0-9, a-f)
healthCheckAccessKey=a0e08d1b0e95dfea4f431d5849b934e09ac5067b
BASH
  • выполнить перезагрузку службы и модуля:
:~$ systemctl daemon-reload & systemctl restart termidesk-gateway.service
BASH

Доступные параметры, а также аргументы командной строки для нового Шлюза приведены в таблице.

Для получения информации по доступным параметрам из интерфейса командной строки, необходимо выполнить команду:

:~$ termidesk-gateway --help
BASH
Доступные переменные нового Шлюза

Наименование переменнойЗначение по умолчаниюОписаниеАргумент командной строки
wsServerPort 5099 Порт прослушивания службы для входящих подключений --wsServerPort

wsServerIP

127.0.0.1

Адрес прослушивания входящих подключений при комплексной установке.

При распределенной установке необходимо использовать значение 0.0.0.0, чтобы порт 5099 прослушивался не только localhost, если планируется принимать запросы на подключения с внешних систем (например, с балансировщиков нагрузки)

--wsServerIP

Не задано

10000 Порт прослушивания службы для входящих подключений по протоколу SSL --wssServerPort

Не задано

127.0.0.1

Адрес прослушивания входящих подключений по протоколу SSL при комплексной установке.

При распределенной установке необходимо использовать значение 0.0.0.0, чтобы порт прослушивался не только localhost, если планируется принимать запросы на подключения с внешних систем (например, с балансировщиков нагрузки)

--wssServerIP

Не задано

Нет

Путь к файлу ключа для соединения SSL.

Пример команды, в которой переопределены параметры запуска службы Шлюза, указаны пути к файлам ключа и сертификата и включен отладочный режим:

:~$ termidesk-gateway --wssServerIP=0.0.0.0 --wssServerPort=8443 --sslKey=/etc/ssl/private/ssl-cert-snakeoil.key --sslCert=/etc/ssl/certs/ssl-cert-snakeoil.pem --debug
BASH

При использовании сертификатов и ключей на файлы .key и .pem необходимо выдать права на чтение командой chmod 644:

:~$ sudo chmod 644 /etc/termidesk/ssl-cert-snakeoil.key
:~$ sudo chmod 644 /etc/termidesk/ssl-cert-snakeoil.pem
BASH

И перезапустить termidesk-gateway:

:~$ sudo systemctl restart termidesk-gateway.service
BASH
--sslKey

Не задано

Нет

Путь к файлу сертификата для соединения SSL.

Пример команды для переопределения параметра приведен выше

--sslCert

Не задано

Нет Парольная фраза для соединения SSL --sslPassPhrase

Не задано

Нет Путь к файлу с ключами Диффи-Хеллмана для соединения SSL --sslDhParams

Не задано

Нет

Путь к корневому сертификату, на котором выпущен сертификат, указанный в параметре sslCert.

Используется для проверки подлинности указанного в параметре sslCert сертификата

--sslCa

Не задано

Нет Используемый алгоритм для преобразований для соединения SSL --sslCiphers
urlCheckToken https://127.0.0.1/api/wsproxy/v1/verify

IP-адрес или FQDN диспетчера Termidesk для обслуживания API-запросов по состоянию Шлюза в случае комплексной установки.

Если программный комплекс Termidesk установлен в распределенном варианте, следует изменить значение 127.0.0.1 на внешний IP-адрес или FQDN балансировщика

 --urlCheckToken
Не задано 30

Интервал установки соединения (в секундах)

--wsIdleTimeout
gatewayLogMode Нет

Активация и переключение режима журналирования. Значение задается через файл termidesk-gateway.conf.

При значении «-d» активируется подробный режим уровня DEBUG, при значении «-l» активируется менее подробный режим уровня INFO. Пустое значение параметра приводит к отключению режима журналирования.

Активировать режим можно также через аргумент командной строки, для этого выполнить:

termidesk-gateway <значение>

Пример:

termidesk-gateway -l

Информация будет выводиться в интерфейс командной строки. Для прекращения вывода и отключения режима необходимо нажать сочетание клавиш <Ctrl>+<C>

-d

-l

mgtServerIP 127.0.0.1

Задание IP-адреса или FQDN доступа к API Шлюза. Код 200 в ответе на API-запрос свидетельствует о работоспособности Шлюза.

При распределенной установке следует задать значение 0.0.0.0 для активации приема запросов с внешних систем.

Запрос с параметрами по умолчанию успешно выполнится только с узла, на котором установлен Шлюз:

:~$ wget http://localhost:8102/api/health 
BASH

Для того чтобы получить состояние Шлюза с другого узла, нужно задать параметру --mgtServerIP значение 0.0.0.0. Пример команды для запуска Шлюза с переопределенными параметрами:

:~$ termidesk-gateway --wsServerIP=0.0.0.0 --wsServerPort=5099 --urlCheckToken=http://<FQDN_Узла>/api/wsproxy/v1/verify --wsIdleTimeout=30 --mgtServerIP=0.0.0.0 --mgtServerPort=8102 --healthCheckAccessKey=6622b09199c62bcf9418ad846dd0e4bbdfc6ee4b
BASH

Значение также может быть переопределено через файл termidesk-gateway.conf

--mgtServerIP
mgtServerPort 8102

Задание порта доступа к API Шлюза.

По умолчанию используется порт 8102.

Пример команды для переопределения параметров запуска Шлюза для доступа к API из внешних систем:

:~$ termidesk-gateway --wsServerIP=0.0.0.0 --wsServerPort=5099 --urlCheckToken=http://<FQDN_Узла>/api/wsproxy/v1/verify --wsIdleTimeout=30 --mgtServerIP=0.0.0.0 --mgtServerPort=8102 --healthCheckAccessKey=6622b09199c62bcf9418ad846dd0e4bbdfc6ee4b
BASH

Значение также может быть переопределено через файл termidesk-gateway.conf

--mgtServerPort
healthCheckAccessKey a0e08d1b0e95dfea...

Задание ключа доступа для аутентификации запросов к API Шлюза.

Пример команды для переопределения параметра приведен выше.

Значение также может быть переопределено через файл termidesk-gateway.conf.

При задании значения ключа следует руководствоваться правилом, что:

  • размер ключа должен составлять от 0 до 64 символа;
  • должны использоваться символы в шестнадцатеричной системе (0-9, a-f)
--healthCheckAccessKey
Не задан Нет

Вывод версии Шлюза

--version

Пример команды проверки состояния компонента через утилиту  curl для нового Шлюза  termidesk-gateway:

:~$ curl -v -s -X 'GET' "${HOSTNAME}:8102/api/health" -H 'accept: application/json' -H "Authorization: Token ${HEALTH_CHECK_ACCESS_KEY}" --fail -w "\n%{http_code}\n"
BASH