Обзор развертывания Kasm на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Debian или Ubuntu (для использования установочного скрипта) или RHEL-подобные дистрибутивы.
-
Права доступа: права суперпользователя (
root) для установки пакетов и управления Docker. -
Доменное имя: необходимо наличие домена, настроенного на IP сервера.
-
Порты: приложение использует порты
3000и пользовательский порт (зависит от конфигурации).
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | kasm |
| Домен | hostkey.in |
| Полный шаблон | kasm{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В зависимости от метода установки, структура данных может различаться:
-
/opt/kasm/current/certs/— директория с SSL-сертификатами (для Debian/Ubuntu). -
/data/kasm/— основная рабочая директория для данных приложения (в RHEL-системах). -
/data/kasm/profiles— хранилище профилей пользователей. -
/etc/docker/daemon.json— конфигурационный файл Docker.
Процесс установки приложения¶
Процесс развертывания зависит от операционной системы:
Для систем на базе Debian и Ubuntu:
-
Обновление кэша пакетов
apt. -
Установка специфической версии Docker (
5:28.5.2-1~ubuntu.22.04~jammy) с фиксацией версии для предотвращения нежелательных обновлений. -
Загрузка и распаковка установочного архива Kasm из S3.
-
Запуск установочного скрипта
./install.shс параметрами: -
--admin-password: пароль администратора. -
--user-password: пароль пользователя. -
--public-hostname: доменное имя в форматеkasm{Server_ID_from_Invapi}.hostkey.in. -
--accept-eula: принятие лицензионного соглашения. -
--no-images,--no-check-ports,--no-check-disk: пропуск стандартных проверок. -
--swap-size 8192: настройка размера подкачки. -
Настройка SSL-сертификатов через Certbot (standalone режим).
Для систем на базе RHEL:
-
Установка Docker.
-
Создание директорий для данных:
/data,/data/kasm/,/data/kasm/profilesс правами0640. -
Запуск контейнера Kasm Workspaces через Docker.
Права доступа и безопасность¶
-
Пакеты Docker фиксируются в системе (
hold), чтобы избежать конфликтов версий. -
Для RHEL-систем директории данных создаются с ограниченными правами доступа (
0640). -
Используется Certbot для обеспечения безопасности соединения через SSL.
Базы данных¶
В предоставленных конфигурациях информация о внешних базах данных отсутствует; приложение использует встроенные механизмы хранения или контейнеры, описанные в разделе Docker.
Контейнеры Docker и их запуск¶
При использовании метода развертывания на RHEL-системах запускается следующий контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | lscr.io/linuxserver/kasm:latest |
| Имя контейнера | kasm |
| Порты | 3000:3000, {kasm_port}:{kasm_port} |
| Тома (volumes) | /data/kasm:/opt, /data/kasm/profiles:/profiles, /dev/input:/dev/input, /run/udev/data:/run/udev/data |
| Переменные окружения | KASM_PORT={kasm_port} |
| Политика перезапуска | unless-stopped |
| Режим работы | privileged: yes |
Кастомные скрипты и дополнительные настройки¶
В процессе установки выполняются следующие действия:
-
Настройка Docker: создание конфигурационного файла
/etc/docker/daemon.json. -
Обновление плагинов: в Debian/Ubuntu выполняется замена старого плагина
docker-compose(версии 1.42) на новый плагин версии 1.52 из/usr/libexec/docker/cli-plugins/. -
Управление сертификатами: при установке на Debian/Ubuntu происходит подмена стандартных сертификатов Kasm (
kasm_nginx.keyиkasm_nginx.crt) на валидные сертификаты, полученные через Certbot.
Инструкция по обновлению приложения¶
Для обновления приложения в Docker-контейнере необходимо выполнить:
(Примечание: если используется метод установки скриптом, обновление производится повторным запуском установочного файла).Расположение конфигурационных файлов и данных¶
| Тип | Путь |
|---|---|
| Конфигурация Docker | /etc/docker/daemon.json |
| Данные приложения (RHEL) | /data/kasm/ |
| Сертификаты (Debian/Ubuntu) | /opt/kasm/current/certs/ |
Доступные порты для подключения¶
-
3000: стандартный порт интерфейса. -
{kasm_port}: пользовательский порт, заданный в конфигурации.
Запуск, остановка приложения¶
Для систем с установкой через скрипт (Debian/Ubuntu):
-
Остановка сервисов:
/opt/kasm/bin/stop -
Запуск сервисов:
/opt/kasm/bin/start
Для систем с Docker (RHEL):
- Управление осуществляется стандартными командами
docker start kasm,docker stop kasm.