Сегодня на просторах интернета можно найти огромное количество решений для управления виртуализацией от коробочных до панельных версий. Одни ставятся вместе с системой, другие «наворачиваются» отдельно. Среди них есть с виду обычная система управления виртуальными узлами Archipel от французского программиста Антуана Меркадаля (Antoine Mercadal). Первые версии были доступны в ISO-образе. Скачал, поставил и забыл. Образы были нескольких вариантов, на базе CentOS и на базе Fedora. Сейчас Archipel доступен в репозиториях Ubuntu начиная с 14.04 LTS, на более ранних версиях не тестировалось. Также на сайте разработчика доступен образ ANSOS (Archipel Node Stateless OS).

Почему среди всех выделил именно эту систему? Да просто у нее есть одно существенное отличие, которое для меня показалось очень удобным и гибким в работе решением. Эта система обменивается командами на базе протокола XMPP, что позволяет мгновенно реагировать на изменения состояния системы. То есть все ответы виртуальных узлов или систем сразу появляются в веб-клиенте! Представь, какие удобные инструменты добавляются в мессенджере. Хоть с самим гипервизором, хоть с виртуалками отдельно можно в прямом смысле «разговаривать», обмениваясь сообщениями! Также доступна традиционная веб-панель. Archipel-агент может быть установлен практически на все гипервизоры KVM, QEMU, VMware, Xen, OpenVZ.

 

Итак, планы на сегодня!

  1. Установка системы управления Archipel.
  2. Краткий экскурс по веб-панели управления Archipel.
 

Установка и настройка

Нам дано:

  • установленная версия Ubuntu 12.04;
  • утилиты для организации сетевого моста;
  • настроенный сетевой мост на одном из интерфейсов.

Итак, имеем Ubuntu Server. Первым делом надо установить ejabberd-сервер (как мы помним, Archipel взаимодействует с пользователем через XMPP-протокол). Устанавливать будем из стандартных репозиториев Ubuntu:

$ sudo apt-get install ejabberd

Далее переходим к настройке. Конфиг для ejabberd можно найти на сайте archipelproject.org, в разделе документации, а исправленный конфиг смотри в дополнительных материалах к этой статье.

Мысли вслух

Конечно, никто не запрещает использовать публичные серверы XMPP вместо того, чтобы настраивать свой. Однако, как ты, уважаемый читатель, понимаешь, безопасность в этом случае очень и очень страдает. Например, некоторых никогда не покидает чувство «они везде, они следят за нами». А вот если в арсенале имеются несколько серверов с виртуализацией, тогда достаточно поднять один Jabber-сервер. У некоторых пользователей встречал даже такую настройку: стоял сервер виртуализации на Ubuntu, а внутри маленькая виртуалка с Jabber-сервером. И уже этот самый джаббер обслуживает управлялку Archipel. В этом случае стоит понимать, что, как только отвалится виртуалка, доступ к управлению через Archipel сразу пропадет тоже.

Меняем параметры IP-адреса и FQDN на свои. Перезапускаем ejabberd:

# service ejabberd restart

Если все прошло хорошо, то движемся дальше. Если нет, идем курить логи и исправлять ошибки. Далее делаем необходимые записи в файле /etc/hosts на нашем компе или поднимаем DNS-сервер, добавляем нужную зону, прописываем необходимые А-записи. Запись в FQDN типа

X.X.X.X    your.fqdn.com

Далее создаем необходимые сертификаты для SSL:

# openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout /etc/ejabberd/privkey.pem -out /etc/ejabberd/ejabberd.pem
# openssl rsa -in /etc/ejabberd/privkey.pem -out /etc/ejabberd/privkey.pem
# cat /etc/ejabberd/privkey.pem >> /etc/ejabberd/ejabberd.pem
# rm /etc/ejabberd/privkey.pem

Перезапускаем ejabberd. Опять-таки, если не запускается, смотрим логи. Если все о’кей, идем дальше. Следующим шагом нужно установить агент Archipel и веб-клиент. Веб-клиент — это обычное веб-приложение, для его работы поднимаем любой из удобных веб-серверов, на этом или любом другом сервере.

Агент Archipel устанавливается несколькими путями: из репозитория Python или из исходного кода стягиванием с GitHub. С Гитхаба вот таким образом:

# git clone https://github.com/ArchipelProject/Archipel.git
# cd /path/to/clone/Archipel/
# ./pull.sh

Через Python установку провести можно вот так:

# easy_install apscheduler==2.1.2 sqlalchemy numpy
# cd /path/ArchipelAgent/
# ./buildAgent -d

Или можно тупо стянуть последнюю ТЕСТИРУЕМУЮ версию архивом:

# wget http://nightlies.archipelproject.org/latest-archipel-agent.tar.gz
# tar xvf latest-archipel-agent.tar.gz -C /path/to/untar/

Для завершения установки запускаем

# archipel-initinstall

Теперь необходимо создать пользователя Jabber с правами админа гипервизора:

# archipel-tagnode --jid=admin@FQDN --password=YOURPASSWORD --create
# archipel-rolesnode --jid=admin@FQDN --password=YOURPASSWORD --create
# archipel-adminaccounts --jid=admin@FQDN --password=YOURPASSWORD --create

Здесь меняем учетные данные на свои, где

  • admin — имя пользователя;
  • FQDN — полное хостовое имя Jabber-сервера или домена, на который Jabber-сервер настроен;
  • YOURPASSWORD — твой придуманный пароль.

Теперь можно рестартнуть Archipel и убедиться, что все запустилось без ошибок:

# service archipel restart

Проверяем, подключился ли пользователь «гипервизор» к Jabber-серверу:

# ejabberdctl connected_users

Если все прошло хорошо, то в списке подключенных пользователей увидим агент, например:

1e96182c-3231-4054-ac3d-338b1b364fe4@hyper.local/hyper.local

Изменить учетные данные агента можно в файле /etc/archipel/archipel.conf, а также можно изменить имя администратора агента, которому разрешены все права, сменить-IP адрес, задать каталог хранения виртуальных машин и прочее:

# General configuration. You should just need to edit these values
#
[DEFAULT]
xmpp_server                 = hyper.local # адрес домена jabber-сервера
archipel_folder_lib         = /var/lib/archipel/ # каталог archipel
archipel_general_uuid       = 1e96182c-3231-4054-ac3d-338b1b364fe4 # Имя (адрес) гипервизора — пользователя Jabber-сервера
archipel_folder_data        = /var/vm/ # Каталог, в котором хранятся виртуалки по умолчанию
[GLOBAL]
archipel_root_admins        = admin@%(xmpp_server)s # Имя администратора Jabber-сервера
machine_ip                  = 192.168.254.222 # IP-адрес машины гипервизора
use_avatar                  = True # Использование аватаров
# Данные vcard гипервизора
[VCARD]
orgname     = Archipel Corp
orgunit     = Dev
userid      = contact@archipelproject.org
locality    = San Francisco
url         = http://archipelproject.org
categories  = Archipel

После успешного запуска проверяем тест XMPP-сервера службами Archipel:

# archipel-testxmppserver --jid=admin@FQDN --password=YOURPASSWORD

Здесь нужно отметить, что для работы системы успешный тест должен быть для первых четырех пунктов, для остальных некритично. Обновление агента можно проводить через

# easy_install -U archipel-agent
# /etc/init.d/archipel restart

Или из исходного кода:

# git pull
# /etc/init.d/archipel restart

Оригинальная инструкция доступна на официальном сайте проекта.

 

Создаем виртуалки

Если все хорошо прошло, агент запущен, веб-клиент установлен, тогда заходим по адресу веб-клиента браузером и наблюдаем страничку авторизации.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


Александр «Plus» Рак

Александр «Plus» Рак

Участник сообщества OmskLUG. Руководитель группы автоматизации отдела ИТ департамента образования, город Салехард

Оставить мнение

Check Also

WTF is APT? Продвинутые атаки, хитрости и методы защиты

Наверняка ты уже читал о масштабных сетевых атаках, от которых пострадали банки, крупные п…