WEB-интерфейс управления узлом виртуализации LXD

by Anton Chernousov aka GITA-DEV


Опубликовано: 23 Окт 2018 (последние правки 3 недели)


WEB-интерфейс управления узлом виртуализации LXD

Я уже неоднократно рассказывал о настройке системы контейнерной изоляции LXD и управлении фермой LXD гипервизоров из консоли, но как верно подметили мои читатели все же хотелось бы иметь удобный графический интерфейс для управления LXD-сервером. Честно говоря какого-то официального web-интерфейса для LXD я не нашел и мне пришлось пробовать все проекты с github.

Я попробовал наверное все развивающиеся проекты web-интерфейсов управления LXC/LXD фермой виртуализации и в итоге остановился на lxdui от AdaptiveScale. Последние каммиты там датированны четырьмя месяцами назад и этот проект написан на python, что позволит мне его по необходимости дорабатывать.

Официальная страница на GITHUB расположена по адресу: https://github.com/AdaptiveScale/lxdui

Установку я буду проводить на уже настроенный узел LXD, причем я рекомендую не использовать пакет входящий в состав дистрибутива, а собрать LXC по моей инструкции "Сборка гипервизора контейнеров LXC (LXD) из исходных кодов и настройка окружения разработчика". В свежих версиях которые еще не приняли в стабильную ветку наконец то появились механизмы живой миграции между узлами.

За основу для этого теста я взял Ubuntu Server 16.04. Не буду повторяться с установкой демона LXD и сразу расскажу как установить этот web-интерфейс на уже существующий узел LXC/LXD изоляции, а начинаем мы конечно с установки необходимых пакетов:

# apt install -y git build-essential libssl-dev python3-venv python3-dev zfsutils-linux bridge-utils
# aptitude install libffi-dev

Переходим в каталог /opt/ и создаем каталог для хранения нашего web-интерфейса, подготавливаем виртуальное окружение и производим тестовый запуск.

Все это укладывается в следующую последовательность команд в Linux-терминале:

# cd /opt/
# mkdir ./lxd-web
# cd ./lxd-web/
# git clone https://github.com/AdaptiveScale/lxdui.git
# python3 -m venv venvironment
# source ./venvironment/bin/activate
# cd lxdui
# python3 setup.py install
# lxdui start

Если все прошло успешно, то вы увидите следующее сообщение:

LXDUI ver. 2.1.2 -- (c)AdaptiveScale, Inc.
http://www.adaptivescale.com
LXDUI started. Running on http://0.0.0.0:15151
PID=24129, Press CTRL+C to quit

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

Логин и пароль по умолчанию admin/admin после первого входа его лучше конечно изменить и сделать это можно из консоли выполнив команду:

# lxdui user update -u admin

Веб интерфейс довольно интуитивно понятный и если вы читали мои предыдущие заметки по системе контейнерной изоляции, то вам будет все понятно и вы найдете его довольно удобным.

Осталось только настроить автозапуск окружения и для этого я буду использовать SupervisorD. Для установки SupervisorD используется команда:

# aptitude install supervisor

А конфигурационный файл для запуска web-интерфейса управления (/etc/supervisor/conf.d/lxd-web.conf) приобретает вид:

[program:lxdui-15151]
command=/opt/lxd-web/venvironment/bin/python3 /opt/lxd-web/lxdui/run.py start
stderr_logfile = /var/log/supervisor/lxdui-stderr.log
stdout_logfile = /var/log/supervisor/lxdui-stdout.log

Перезагрузите сервер и проверьте, что запуск происходит автоматически.


Обратите внимание на статьи:


Набор скриптов для управления LXD-фермой

Набор скриптов для управления LXD-фермой

В свете последних сообщений о том, что в системе LXC и LXD было исправлено достаточно много ошибок связанных с утечкой памяти, возникло желание, пересобрать свежие версии LXC и LXD для тестовой фермы и понаблюдать до внедрения на продакшн. Перед внедрением на прод естественно надо посмотреть два-три дня и сравнить полученные за тестовый период метрики. Про пересборку фермы LXC-LXD я уже писал, но сегодня я хотел предложить вашему вниманию набор скриптов которые я использую для построения узла фермы контейнерной виртуализации.


OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

OpenVPN-сеть для LXD-кластера без назначения адресов клиентов (использование стороннего DHCP для управления клиентами VPN-сети)

Представляю вашему вниманию небольшой экскурс в активно используемую мной технологию построения распределенных виртуальных сетей на базе OpenVPN в немного непривычной реализации. Если вы работаете с OpenVPN технологиями, то наверное обратили внимание что практически все руководства описывают OpenVPN сеть где OpenVPN-сервер выступет в качестве DHCP-сервера и назначает адреса для своих клиентов, но я сегодня хотел бы предложить вам уйти от типовых реализаций.


Скрипт и поясняющее видео сборки гипервизора контейнеров LXD из исходных кодов (мастер-ветка)

Скрипт и поясняющее видео сборки гипервизора контейнеров LXD из исходных кодов (мастер-ветка)

В продолжение статьи по сборке GIT-версии гипервизора контейнеров LXD из исходных кодов, я подготовил скрипт выполняющий все описанное в предыдущих статьях в автоматизированном режиме и небольшую видео-демонстрацию того как собрать все в ручном режиме.


Управление дисковыми хранилищами LXD из консоли

Управление дисковыми хранилищами LXD из консоли

В предыдущей статье про базовую настройку окружения разработчика мы получили много вопросов по поводу управления дисковыми пулами и по результатам обсуждения статьи мы подготовили небольшую статью HOW-TO по управлению виртуальными дисками (и хранилищами) системы контейнерной изоляции LXD.


Сборка гипервизора контейнеров LXC (LXD) из исходных кодов и настройка окружения разработчика

Сборка гипервизора контейнеров LXC (LXD) из исходных кодов и настройка окружения разработчика

Данная статья родилась в процессе работ над проектом по тестировнию функционала горячей миграции контейнеров LXC. Мы провели сборку LXD из git-репозитария и описали шаги для повторения этих манипипуляций в дальнейшем. Дополнительно мы подготовили инструкцию по созданию окружения для наших разработчиков.


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.