Обзор развертывания Kasm на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Debian или RHEL. Требуется доступ к серверу с правами суперпользователя (root) для выполнения команд установки и настройки.
Система должна иметь доступ к интернету для загрузки установочных скриптов, образов контейнеров и получения сертификатов безопасности. Для работы веб-интерфейса и получения SSL-сертификатов должен быть настроен доменное имя, соответствующее формату {{ prefix }}{{ server_id }}.{{ zone }}.
При развертывании на Debian требуется наличие свободного места для создания файла подкачки размером 8192 МБ.
Структура файлов и каталогов¶
Основные компоненты приложения и его конфигурация размещаются в следующих директориях:
-
/opt/kasm/— основная директория установки приложения Kasm. -
/opt/kasm/current/certs/— каталог для хранения SSL-сертификатов и ключей. -
/etc/letsencrypt/live/— расположение сертификатов, выданных через Certbot. -
/data/— корневая директория для хранения данных (используется в конфигурации RHEL). -
/data/kasm/— точка монтирования для основных данных приложения. -
/data/kasm/profiles/— точка монтирования для профилей пользователей. -
/etc/docker/— каталог конфигурации Docker-демона.
Процесс установки приложения¶
Установка приложения выполняется с использованием официального установочного скрипта версии 1.17.0. Процесс включает следующие этапы:
-
Обновление кэш-памяти пакетов системы.
-
Установка или принудительная установка специфичной версии Docker (5:28.5.2-1ubuntu.22.04jammy) для совместимости с Kasm на системах Ubuntu 22.04.
-
Блокировка обновлений пакетов Docker для предотвращения случайного изменения версии.
-
Загрузка архива с установщиком по адресу
https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.bbc15c.tar.gz. -
Распаковка архива в корневую директорию.
-
Запуск скрипта установки
install.shс параметрами: -
--admin-password— пароль администратора. -
--user-password— пароль пользователя. -
--public-hostname— публичное доменное имя сервера. -
--accept-eula— принятие условий лицензионного соглашения. -
--no-images— пропуск загрузки образов. -
--no-check-ports— пропуск проверки портов. -
--no-check-disk— пропуск проверки диска. -
--swap-size 8192— создание файла подкачки размером 8192 МБ.
После выполнения скрипта установки сервисы Kasm останавливаются для замены сертификатов.
Контейнеры Docker и их запуск¶
Приложение работает в контейнере Docker. В конфигурации для RHEL используется образ lscr.io/linuxserver/kasm:latest.
Контейнер запускается с следующими параметрами:
-
Имя контейнера:
kasm. -
Режим привилегированного доступа:
privileged: yes. -
Переменная окружения
KASM_PORTзадает порт для доступа. -
Точки монтирования (volumes):
-
/data/kasm:/opt -
/data/kasm/profiles:/profiles -
/dev/input:/dev/input -
/run/udev/data:/run/udev/data -
Открытые порты:
3000:3000и порт, указанный в переменнойkasm_port. -
Политика перезапуска:
unless-stopped.
Для настройки Docker-демона используется конфигурационный файл daemon.json, который копируется в /etc/docker/.
Прокси серверы¶
Для обеспечения безопасного подключения используется протокол HTTPS с сертификатами, выданными через Let's Encrypt.
Процесс настройки сертификатов включает:
-
Установка пакета
letsencrypt. -
Получение сертификата через команду
certbot certonlyв режимеstandaloneдля домена{{ prefix }}{{ server_id }}.{{ zone }}. -
Замена стандартных сертификатов Kasm на выданные Let's Encrypt:
-
Ключ копируется из
/etc/letsencrypt/live/{{ prefix }}{{ server_id }}.{{ zone }}/privkey.pemв/opt/kasm/current/certs/kasm_nginx.key. -
Сертификат копируется из
/etc/letsencrypt/live/{{ prefix }}{{ server_id }}.{{ zone }}/fullchain.pemв/opt/kasm/current/certs/kasm_nginx.crt. -
Старые сертификаты сохраняются с расширением
_bak.
Настройки прав¶
Права доступа к файлам и директориям устанавливаются следующим образом:
-
Директории
/data,/data/kasm/и/data/kasm/profiles/создаются с владельцемrootи группойrootс правами0640. -
Конфигурационный файл Docker
daemon.jsonкопируется в/etc/docker/с правами0644и владельцемroot.
Запуск, остановка и обновление¶
Управление сервисами Kasm осуществляется с помощью скриптов, расположенных в директории /opt/kasm/bin/.
Для остановки всех сервисов используется команда:
Для запуска всех сервисов используется команда:
Сервис Docker должен быть включен в автозагрузку и запущен с помощью системного менеджера systemd.