Пост-установочные действия
Создание администратора
После завершения установки нет доступных пользователей для управления системой. Вы можете создать пользователя-администратора при помощи команды
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.