Сегодня на просторах интернета можно найти огромное количество решений для управления виртуализацией от коробочных до панельных версий. Одни ставятся вместе с системой, другие «наворачиваются» отдельно. Среди них есть с виду обычная система управления виртуальными узлами 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. Купи одну статью

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


Комментарии

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Как работает Linux: от нажатия кнопки включения до рабочего стола

Лучший способ понять, как работает операционная система, — это проследить поэтапно ее загр…