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

Обзор развертывания 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. Процесс включает следующие этапы:

  1. Обновление кэш-памяти пакетов системы.

  2. Установка или принудительная установка специфичной версии Docker (5:28.5.2-1ubuntu.22.04jammy) для совместимости с Kasm на системах Ubuntu 22.04.

  3. Блокировка обновлений пакетов Docker для предотвращения случайного изменения версии.

  4. Загрузка архива с установщиком по адресу https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.bbc15c.tar.gz.

  5. Распаковка архива в корневую директорию.

  6. Запуск скрипта установки install.sh с параметрами:

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

  8. --user-password — пароль пользователя.

  9. --public-hostname — публичное доменное имя сервера.

  10. --accept-eula — принятие условий лицензионного соглашения.

  11. --no-images — пропуск загрузки образов.

  12. --no-check-ports — пропуск проверки портов.

  13. --no-check-disk — пропуск проверки диска.

  14. --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.

Процесс настройки сертификатов включает:

  1. Установка пакета letsencrypt.

  2. Получение сертификата через команду certbot certonly в режиме standalone для домена {{ prefix }}{{ server_id }}.{{ zone }}.

  3. Замена стандартных сертификатов Kasm на выданные Let's Encrypt:

  4. Ключ копируется из /etc/letsencrypt/live/{{ prefix }}{{ server_id }}.{{ zone }}/privkey.pem в /opt/kasm/current/certs/kasm_nginx.key.

  5. Сертификат копируется из /etc/letsencrypt/live/{{ prefix }}{{ server_id }}.{{ zone }}/fullchain.pem в /opt/kasm/current/certs/kasm_nginx.crt.

  6. Старые сертификаты сохраняются с расширением _bak.

Настройки прав

Права доступа к файлам и директориям устанавливаются следующим образом:

  • Директории /data, /data/kasm/ и /data/kasm/profiles/ создаются с владельцем root и группой root с правами 0640.

  • Конфигурационный файл Docker daemon.json копируется в /etc/docker/ с правами 0644 и владельцем root.

Запуск, остановка и обновление

Управление сервисами Kasm осуществляется с помощью скриптов, расположенных в директории /opt/kasm/bin/.

Для остановки всех сервисов используется команда:

/opt/kasm/bin/stop

Для запуска всех сервисов используется команда:

/opt/kasm/bin/start

Сервис Docker должен быть включен в автозагрузку и запущен с помощью системного менеджера systemd.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×