Перейти к содержанию

Обзор развертывания 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:

  1. Обновление кэша пакетов apt.

  2. Установка специфической версии Docker (5:28.5.2-1~ubuntu.22.04~jammy) с фиксацией версии для предотвращения нежелательных обновлений.

  3. Загрузка и распаковка установочного архива Kasm из S3.

  4. Запуск установочного скрипта ./install.sh с параметрами:

  5. --admin-password: пароль администратора.

  6. --user-password: пароль пользователя.

  7. --public-hostname: доменное имя в формате kasm{Server_ID_from_Invapi}.hostkey.in.

  8. --accept-eula: принятие лицензионного соглашения.

  9. --no-images, --no-check-ports, --no-check-disk: пропуск стандартных проверок.

  10. --swap-size 8192: настройка размера подкачки.

  11. Настройка SSL-сертификатов через Certbot (standalone режим).

Для систем на базе RHEL:

  1. Установка Docker.

  2. Создание директорий для данных: /data, /data/kasm/, /data/kasm/profiles с правами 0640.

  3. Запуск контейнера 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 compose pull && docker compose up -d
(Примечание: если используется метод установки скриптом, обновление производится повторным запуском установочного файла).

Расположение конфигурационных файлов и данных

Тип Путь
Конфигурация 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.
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×