Download PDF
Download page Шлюз. Параметры конфигурирования.
Шлюз. Параметры конфигурирования
Параметры конфигурирования компонента
Параметры конфигурирования Шлюза задаются в конфигурационном файле /etc/termidesk/gateway.yaml
.
При обновлении компонента «Универсальный диспетчер» и/или Шлюза termidesk-gateway
на версию из состава программного комплекса 5.Х вместо значения https://127.0.0.1/api/wsproxy/v1/verify
для параметра urlCheckToken
нужно использовать значение https://127.0.0.1/api/wsproxy/v1.1/verify
.
Реализована обратная совместимость с прошлым файлом конфигурации: файл /etc/termidesk/gateway.yaml
реализует подстановку значений параметров из переменных окружения, которые были заданы в /etc/termidesk/termidesk-gateway.conf
.
Для задания параметров конфигурирования Шлюза из файла необходимо:
- отредактировать файл
gateway.yaml
, указав необходимые значения для параметров:
#
# The default configuration file for Termidesk Gateway, please do not change it.
#
# Объявляем переменную для SSL
_val0: &sslprof0
key: ${sslKey:/etc/termidesk/ssl-cert-snakeoil.key} # Путь к файлу закрытого ключа
cert: ${sslCert:/etc/termidesk/ssl-cert-snakeoil.pem} # Путь к файлу сертификата
ca: ${sslCa} # Путь к файлу цепочки сертификации
passphrase: ${sslPassPhrase} # Парольная фраза для соединения SSL
dhparams: ${sslDhParams} # Путь к файлу с ключами Диффи-Хеллмана
# для соединения SSL (default "")
ciphers: ${sslCiphers} # Используемый алгоритм преобразований
# для соединения SSL (default "")
# Gateway серверы (это список, по умолчанию он пустой)
gwservers:
- listen: ${wsServerIP:0.0.0.0}:${wsServerPort:5099} # IP-адрес и порт для защищенных входящих подключений,
# для IPv6 "[::1]:80" (default ~)
websocket: # Настройка WebSocket
pingtimeout: ${wsIdleTimeout:30} # Время пинга «Клиента» в секундах, диапазон [0, 100000],
# если 0, то пинги отключены (default 30)
checktoken: # Настройка проверки токенов
url: ${urlCheckToken:https://disp.termidesk.local/api/wsproxy/v1.1/verify} # URL для проверки
# (default "http://127.0.0.1:8080/api/wsproxy/v1/verify")
tcp_downstream: # Настройка соединения с сервисами по протоколу TCP
reconnect: ${gwTCPReconnect:0} # Количество переподключений, если не задано или равно 0,
# то TCP сессия не восстанавливается, диапазон [0, 10] (default 0)
- listen: ${wssServerIP:0.0.0.0}:${wssServerPort:10000} # IP-адрес и порт для защищенных входящих подключений,
# для IPv6 "[::1]:80" (default ~)
websocket: # Настройка WebSocket
pingtimeout: ${wsIdleTimeout:30} # Время пинга «Клиента» в секундах, диапазон [0, 100000],
# если 0, то пинги отключены (default 30)
checktoken: # Настройка проверки токенов
url: ${urlCheckToken:https://disp.termidesk.local/api/wsproxy/v1.1/verify} # URL для проверки
# (default "http://127.0.0.1:8080/api/wsproxy/v1/verify")
tcp_downstream: # Настройка соединения с сервисами по протоколу TCP
reconnect: ${gwTCPReconnect:0} # Количество переподключений, если не задано или равно 0,
# то TCP сессия не восстанавливается, диапазон [0, 10] (default 0)
ssl: *sslprof0 # Ссылка на настройки заданные в шаблоне SSL (default {})
# ... Другие шлюзы
# MGT сервер
mgtserver:
listen: ${mgtServerIP:0.0.0.0}:${mgtServerPort:8102} # IP-адрес и порт запроса сведений о работоспособности Шлюза
# для IPv6 "[::1]:80" (default ~)
path: ${healthCheckURL:/api/health} # Путь запроса информации о работоспособности Шлюза
# (default "/api/health")
token: ${healthCheckAccessKey} # Токен валидации (default "")
ssl: *sslprof0 # Ссылка на настройки заданные в шаблоне SSL (default {})
# RabbitMQ клиент
rabbitmq:
url: ${coordinatorUrl:amqp://USER:PASS@disp.termidesk.local:5672/termidesk} # URL подключения к серверу RabbitMQ в формате
# "amqp(s)://USER:PASS@<IP-адрес>:<порт>/termidesk",
# где USER и PASS - это необязательные поля (default ~)
user: ${coordinatorUser:termidesk} # user - пользователь, если задан,
# то изменяет url.USER (default "")
pass: ${coordinatorPass:ksedimret} # RabbitMQ pass - пароль, если задан,
# то изменяет url.PASS (default "")
timeout: ${coordinatorTimeout} # RabbitMQ timeout(sec), диапазон [1, 60] (default 10)
refreshtime: ${coordinatorRefreshTime:60} # Период (sec) обновления информация на сервере RabbitMQ,
# диапазон [10, 100000] (default 60)
single: ${coordinatorSingle:true} # Если true - то данные передаются до первого подтверждения,
# если false - то данные передаются по циклу (бесконечно)
# (default false)
exchange: ${coordinatorExchange} # RabbitMQ exchange (default "")
routingkey: ${coordinatorRoutingKey} # RabbitMQ routing key (default "termidesk_appnode")
loglevel: # Логирование сообщений
info: ${logInfo:true} # Уровень INFO (default true)
debug: ${logDebug:false} # Уровень DEBUG (default false)
- выполнить перезагрузку службы:
systemctl restart termidesk-gateway.service
Параметры, используемые в файле /etc/termidesk/
gateway.yaml
приведены в таблице.
Задание параметров может производиться и переменными окружения в формате: ${ENV}
или ${ENV:DEFAULT}
, где DEFAULT
- значение для подстановки, если указанная переменная окружения не найдена.
Если переменная окружения существует с пустым значением, то пустое значение будет подставлено в /etc/termidesk/gateway.yaml
вместо переменной, а не значение по умолчанию.
Например, если нужно задать через переменные окружения адрес IP_ADDR
и порт прослушивания службы PORT
, то в конфигурационном файле /etc/termidesk/
gateway.yaml
можно изменить значение следующим образом:
listen: ${IP_ADDR}:${PORT:8000}
Либо эти значения можно задать напрямую в файле, без использования переменных окружения, тогда запись изменится к виду:
listen: "127.0.0.1:8181"
Параметр | Описание |
---|---|
Секция | |
key: ${sslKey:/etc/termidesk/ssl-cert-snakeoil.key} | Путь к файлу ключа для соединения SSL. Параметр не имеет значения по умолчанию. При использовании сертификатов и ключей на файлы
BASH
|
cert: ${sslCert:/etc/termidesk/ssl-cert-snakeoil.pem} | Путь к файлу сертификата для соединения SSL. Параметр не имеет значения по умолчанию |
ca: ${sslCa} | Путь к корневому сертификату, на котором выпущен сертификат, указанный в параметре Используется для проверки подлинности указанного в параметре |
passphrase: ${sslPassPhrase} | Пароль для пары «сертификат + ключ». Параметр не имеет значения по умолчанию |
dhparams: ${sslDhParams} | Путь к файлу с ключами Диффи-Хеллмана для соединения SSL. Параметр не имеет значения по умолчанию |
ciphers: ${sslCiphers} | Используемый алгоритм преобразований для соединения SSL. Параметр не имеет значения по умолчанию |
Секция gwservers: | |
listen: ${wsServerIP:0.0.0.0}:${wsServerPort:5099} | Назначение параметров узла Шлюза:
Значения по умолчанию:
Для протокола SSL нужно использовать параметры
При использовании протокола SSL обязательно должна быть настроена секция Порт прослушивания службы может быть назначен любой, здесь приведены стандартные значения. Однако в случае, если нужно назначить порт из диапазона общеизвестных TCP-портов 1 - 1023, следует установить исполняемому файлу
BASH
|
| Таймаут соединения (в секундах) к компоненту «Клиент» Termidesk. Может принимать значения в интервале с 8 до 960, а также 0 (отключен). Значение по умолчанию: «30» |
| Назначение IP-адреса или FQDN узла компонента «Универсальный диспетчер» с ролью «Портал пользователя» для обслуживания API-запросов по состоянию Шлюза. При указании FQDN стоит учитывать, что ОС должна иметь возможность разрешить его в IP-адрес. При обновлении компонента «Универсальный диспетчер» и/или Шлюза
где:
При комплексной установке Termidesk значение Если программный комплекс Termidesk установлен в распределенном варианте, следует изменить значение |
| Количество переподключений Шлюза к ВМ. Может принимать значения в интервале с 0 до 10. Значение по умолчанию:«0» |
Секция | |
| Задание параметров для подключения к API Шлюза:
Значения по умолчанию:
|
| Адрес для запросов проверки состояния Шлюза. Значение по умолчанию: |
token: ${healthCheckAccessKey} | Параметр для доступа к API Шлюза. Параметр не имеет значения по умолчанию. Значение может быть получено из параметра Пример: где:
|
ssl: *sslprof0 | Настройка SSL |
Секция rabbitmq: | |
url: ${coordinatorUrl: amqp://USER:PASS@disp.termidesk.local:5672/termidesk} | URL, содержащий IP-адрес (или FQDN) и порт (по умолчанию Используемый формат: Пример: На данный момент поддерживается задание только одного URL для подключения к серверу RabbitMQ. Подключение может использоваться как незащищенное (в этом случае указывается В случае, если RabbitMQ установлен на том же узле (локально), нужно указать: |
user: ${coordinatorUser} | Имя пользователя для подключения к серверу RabbitMQ. Параметр не имеет значения по умолчанию. Если параметр задан, то он меняет значение При стандартной установке компонента «Универсальный диспетчер» строго по документации в части настроек файла |
pass: ${coordinatorPass} | Пароль для подключения серверу RabbitMQ. Параметр не имеет значения по умолчанию. Если параметр задан, то он меняет значение При стандартной установке компонента «Универсальный диспетчер» строго по документации в части настроек файла |
timeout: ${coordinatorTimeout} | Интервал (в секундах) ожидания ответа от сервера RabbitMQ. Параметр не имеет значения по умолчанию Пример: |
refreshtime: ${coordinatorRefreshTime:60} | Интервал (в секундах) обновления (переопубликации) регистрационной информации (URL и другие данные) Шлюза. Параметр не имеет значения по умолчанию. Значение «0» отключает автоматическую отправку состояния Шлюза на сервер RabbitMQ. Значение по умолчанию: «60» |
single: ${coordinatorSingle:true} | Способ передачи данных. Параметр принимает значения:
Значение по умолчанию: |
exchange: ${coordinatorExchange} | Координатор маршрутизации сообщений, определенный в RabbitMQ. Отвечает за маршрутизацию сообщений в разные очереди. Параметр не имеет значения по умолчанию |
routingkey: ${coordinatorRoutingKey} | Ключ маршрутизации RabbitMQ, используется для маршрутизации задачи в очереди. Параметр не имеет значения по умолчанию |
Секция loglevel: | |
info: ${logInfo:true} | Активация режима журналирования уровня «INFO» |
debug: ${logDebug:false} | Активация подробного режима журналирования уровня «DEBUG» |
Для проверки состояния Шлюза termidesk-gateway
через утилиту curl
нужно:
- получить значение переменной
HEALTH_CHECK_ACCSESS_KEY
, определенной в конфигурационном файле/etc/opt/termidesk-vdi/termidesk.conf
узла «Универсального диспетчера»; на узле Шлюза предварительно задать переменную окружения
HEALTH_CHECK_ACCESS_KEY
и присвоить ей полученное значение, например:
export HEALTH_CHECK_ACCESS_KEY=270c1e6a4cd013a3824982458a26ec4dcac17f60f80a74098a62994f775351e2
- выполнить команду проверки состояния Шлюза:
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"
Для получения информации по доступным аргументам командной строки нужно выполнить команду:
termidesk-gateway --help