Обзор развертывания Kasm Workspaces на сервере¶
Предпосылки и предварительные требования¶
| Параметр | Требование | Примечание |
|---|---|---|
| ОС | Ubuntu 22.04 LTS (Jammy) или RHEL 9 | Для Debian‑подобных систем используется пакет docker-ce версии 5:28.5.2‑1ubuntu.22.04jammy |
| Доступ | root или пользователь с правами sudo | Для установки пакетов и запуска контейнеров требуются привилегии |
| Сеть | Внешний доступ к домену, который будет использоваться в качестве публичного имени | Пример: kasm.example.com |
| Службы | systemd | Для управления Docker и сервисами Kasm |
| Память | минимум 8 ГБ RAM | В задаче установки указано --swap-size 8192 (8 ГБ) |
Перед началом убедитесь, что система обновлена и не содержит конфликтующих версий Docker.
Структура файлов и каталогов¶
После завершения развертывания на машине появятся следующие каталоги и файлы:
/opt/kasm
/opt/kasm/current
/opt/kasm/current/certs
/etc/letsencrypt
/data
/data/kasm
/data/kasm/profiles
/opt/kasm/current– рабочая директория, содержащая исполняемые файлы и конфигурацию Kasm./opt/kasm/current/certs– сертификаты для внутреннего Nginx./etc/letsencrypt– места, где хранится сертификат Let's Encrypt./data/kasm– том, привязанный к контейнеру (для RHEL)./data/kasm/profiles– папка для пользовательских профилей (привязана к контейнеру).
Права доступа и безопасность¶
| Путь | Права | Утилита |
|---|---|---|
/opt/kasm/current | 750 | root:kasm (папка kasm создаётся в процессе установки) |
/opt/kasm/current/certs | 640 | root:kasm |
/etc/letsencrypt | 750 | root:ssl-cert |
/data/kasm | 755 | root:root |
/data/kasm/profiles | 755 | root:root |
| Docker daemon | 644 | /etc/docker/daemon.json |
| Docker containers | privileged: yes | используется для доступа к устройствам ввода и udev |
Для управления Docker рекомендуется добавить пользователя в группу docker:
После изменения группы выполните выход и вход в систему, чтобы изменения вступили в силу.
Базы данных¶
Kasm Workspaces интегрирует собственные базы данных, хранящиеся внутри контейнера /data/kasm. Пользователю не требуется отдельный сервер БД, так как все данные сохраняются в файловой системе, смонтированной в /data/kasm.
Контейнеры Docker и их запуск¶
Установка Docker¶
Для всех поддерживаемых дистрибутивов Docker устанавливается последняя стабильная версия (1.42 compose заменяется на 1.52 compose). После установки выполняется:
Запуск Kasm Workspaces¶
- Debian/Ubuntu – используется скрипт
install.sh, который разворачивает сервисы как systemd‑юниты.
После установки сервисы запускаются автоматически:
- RHEL 9 – приложение разворачивается в виде контейнера
kasm:
docker run -d \
--name kasm \
--privileged \
-e KASM_PORT=3000 \
-v /data/kasm:/opt \
-v /data/kasm/profiles:/profiles \
-v /dev/input:/dev/input \
-v /run/udev/data:/run/udev/data \
-p 3000:3000 \
-p 3000:3000 \
lscr.io/linuxserver/kasm:latest
Если вы предпочитаете Docker Compose, можно подготовить docker-compose.yml с аналогичными настройками, а затем запустить:
Обновление¶
Для обновления Docker Compose до версии 1.52:
sudo rm -r /usr/local/lib/docker/cli-plugins/docker-compose
sudo cp /usr/libexec/docker/cli-plugins/docker-compose /usr/local/lib/docker/cli-plugins/
Для обновления Kasm:
- Debian – запустите скрипт
install.shс новыми параметрами (--upgrade). - RHEL – pull нового образа и перезапустите контейнер:
Прокси серверы¶
Kasm Workspaces содержит встроенный Nginx, который обслуживает HTTPS. После установки выполнен этап выдачи сертификата Let's Encrypt и замены сертификатов, расположенных в /opt/kasm/current/certs.
Как выдаётся сертификат¶
certbot certonly \
--standalone \
--agree-tos \
--register-unsafely-without-email \
--preferred-challenges http \
-d <публичное_имя>
Сертификаты сохраняются в:
После копирования в каталог /opt/kasm/current/certs Nginx начинает обслуживать HTTPS автоматически.
Если нужно добавить собственный прокси (Nginx, Traefik и т.п.), достаточно настроить обратный прокси, передавая трафик на порт, указанный в переменной KASM_PORT (по умолчанию 3000).
Настройки прав, запуск, остановка и обновление¶
| Действие | Команда | Краткое описание |
|---|---|---|
| Запустить сервисы (Debian) | /opt/kasm/bin/start | Запускает все связанные демоны и веб‑сервер |
| Остановить сервисы (Debian) | /opt/kasm/bin/stop | Останавливает демоны и веб‑сервер |
| Перезапустить сервисы | /opt/kasm/bin/stop && /opt/kasm/bin/start | Полный перезапуск |
| Запустить контейнер (RHEL) | docker run ... | Создаёт и запускает контейнер kasm |
| Остановить контейнер | docker stop kasm | Останавливает контейнер |
| Перезапустить контейнер | docker restart kasm | Перезапускает контейнер без удаления |
| Обновить Docker Compose | sudo rm -r /usr/local/lib/docker/cli-plugins/docker-compose && sudo cp /usr/libexec/docker/cli-plugins/docker-compose /usr/local/lib/docker/cli-plugins/ | Переключает версию Compose |
| Обновить Kasm (Debian) | ./install.sh --upgrade ... | Запускает обновление и миграцию конфигурации |
| Обновить Kasm (RHEL) | docker pull lscr.io/linuxserver/kasm:latest && docker restart kasm | Обновляет образ и перезапускает контейнер |
Таким образом, развертывание Kasm Workspaces на клиентской машине включает установку Docker, настройку пользовательских томов и сертификатов, а также запуск сервисов либо в виде systemd‑юнитов (Debian), либо в виде Docker‑контейнера (RHEL). После установки пользователь получает полностью функционирующую платформу с HTTPS‑поддержкой, доступную по заданному домену.