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

Пост-установочные действия

Создание администратора

После завершения установки нет доступных пользователей для управления системой. Вы можете создать пользователя-администратора при помощи команды

make create-admin

После, воспользуйтесь УЗ labforge_admin:P@ssw0rd (пароль на первый вход)

Самостоятельное создание пользователей

Вы можете зайти по данным из docker.env (поля KC_BOOTSTRAP_ADMIN_USERNAME и KC_BOOTSTRAP_ADMIN_PASSWORD). Далее, воспользуйтесь руководством по созданию локальных пользователей.

Создайте SDN-зону

Создайте SDN-зону, которую указали в процессе установки или зону default, если ничего не меняли. Проверена работа simple и vxlan зон.

Установка файловых агентов Proxmox

Файловый агент - это компонент Labforge, который нужно установить на все планируемые к использованию гипервизоры. Он позволяет системе корректировать ряд параметров, закрытых для редактирования по API PVE.

Без установленного агента можно создавать шаблоны разверьывания в веб-интерфейсе, но развертывание не будет проходить по причине отсутствия подходящих серверов.

Исполняемый файл и скрипт установки находятся в директории fs-agent установщика.

Подготовка установщика

Для осуществления установки, в директорию требуется положить pem-сертификаты на Common Name в виде имени сервера. Сертификаты могут быть выпущены на IP-адрес гипервизора. Поместите их в папку под именами crt.pem и crt-key.pem для работы стандартного скрипта установки.

Можно ли использовать другой формат/именование сертификатов?

Да! Но потребуется самостоятельно перенести сертификаты и поправить .service файл агента. Об этом далее.

Если используется встроенный CA

При помощи встроенного CA, возможно выпустить сертификат на произвольный CA при помощи команды:

bash install/ca.sh <хостнейм>
bash install/ca.sh 192.168.1.101 # пример

Сертификаты будут находиться в папке ca под названием <CN>.crt и <CN>.key.

Также для файловых агентов нужно придумать токен доступа. Зная его, можно редактировать параметры виртуальных машин, держите его в тайне! Можете его создать при помощи команды openssl rand -hex 30.

Создайте копию файла proxmox-fs-agent.service.template под названием proxmox-fs-agent.service и замените ${PROXMOX_AGENT_ACCESS_TOKEN} на ваш токен доступа. Также, можете заменить 8000 на любой удобный вам порт. Итог должен быть примерно следующий:

[Unit]
Description=Proxmox FS agent
After=pve-guests.service

[Service]
Type=simple
User=root
Group=root
OOMScoreAdjust=-500
ExecStart=/usr/local/bin/proxmox-fs-agent -p 3000 --crt /var/lib/proxmox-fs-agent/crt.pem --crt-key /var/lib/proxmox-fs-agent/crt-key.pem run
Environment="PROXMOX_AGENT_ACCESS_TOKEN=MEGASECRETTOKEN"
Restart=always

[Install]
WantedBy=multi-user.target

Если вы используете другой формат сертификата

До запуска скрипта установки поместите сертификат и ключ в директорию /var/lib/proxmox-fs-agent/ и замените в файле proxmox-fs-agent.service пути после аргументов --crt и --crt-key - поместите сертификат и его ключ соответственно.

После завершения всех приготовлений, скопируйте получившуюся директорию на гипервизор и выполните, находясь в ней, скрипт install.sh от имени суперпользователя. В случае успеха, в /var/lib/proxmox-fs-agent вы найдете сертификаты, а при помощи команды systemctl start proxmox-fs-agent запустить агента. Можете обратиться на адрес https://<адрес гипервизора>:<указанный порт> для проверки доступности.

Добавление серверов в базу данных

Для использования сервера в развертывании также нужно добавить информацию и доступы к нему в БД сервиса cluster-manager. Для этого используется следующая команда

docker exec -it labforge-cluster ./haskell-binary <аргументы>

Для простоты можете завести alias, например:

alias lnmgr="docker exec -it labforge-cluster ./haskell-binary"

Создание сервера

На какое имя создать токен?

На текущий момент рекомендуем токен на пользователя root с выключенным разделением прав.

Для создания сервера используется команда create-node со следующими аргументами:

--name <...> - имя сервера в PVE
--api-url <ссылка на PVE API, включая api2/json. Например, https://192.168.1.101:8006/api2/json> - ссылка на API Proxmox
--ignore-ssl - опциональный флаг, отключение проверок сертификата от API PVE и файлового агента
--token - токен доступа PVE, в формате соединенного через равно Token ID и Token secret. Например, root@pam!token=f0c55f32-20a6-40b5-9e13-a014e5dc6353 
--start-vmid <число от 100> - начальный VMID, который будет использоваться для развертывания 
--agent-url <ссылка на API файлового агента, например https://192.168.1.101:8000> - ссылка на API файлового агента
--agent-token <токен доступа> - токен доступа агента, установленный ранее 
--display-network <IP-адрес> - адрес VNC дисплея, должен быть доступен серверу Labforge. По умолчанию 0.0.0.0
--min-display <число> - стартовое число VNC дисплея для использования. Для использования портов с 6000, введите 100 
--max-display <число> - конечное число VNC дисплея для использования. Конечный порт можно расчитать по формуле `5900 + <число>`
--display-ip <IP-адрес> - IP-адрес на который будет вестись перенаправление подключения пользователя. По этому адресу должны быть доступны используемые под VNC порты 
-p <число> - внести порт как используемый. Флаг может быть введен несколько раз. Гарантирует незанятость порта VNC дисплеем

Что будет при несовпадении имен в Proxmox и базе данных?

Из-за несовпадения имен алгоритм ротации серверов не будет способен найти сервер и развертывание завершится с ошибкой. После исправления имен также придется заново заменить файл tokens.cfg

После добавления, вы можете проверить доступ к ноде:

docker exec -it labforge-cluster ./haskell-binary check --node <имя сервера в PVE>

Пример команд

~  lnmgr create-node --name example --api-url https://192.168.1.101:8006/api2/json --ignore-ssl --token 'root@pam!token=0636f001-07d4-4423-a8c9-8c58261c747a' --start-vmid 100 --agent-url http://192.168.1.101:8000 --agent-token MEGASECRETTOKEN --min-display 100 --max-display 5000 --display-ip 192.168.1.101 -p 8006 -p 8000
Node created!
~  lnmgr check --node example
Successful response!
~  lnmgr delete --node example

Заполнение токен-файла

Для проксирования трафика до виртуальных машин используется сервис, использующий конфигурационный файл tokens.cfg. После добавления серверов Proxmox в базу данных (см. пункт выше) его можно получить по адресу https://<домен UI системы>/api/cluster/websockify/config. Сохраните его и поместите в директорию deployment/websockify/tokens.cfg и выполните команду docker restart labforge-websockify.