Управление облаком на open-source софте

в 7:13, , рубрики: cloud, kvm, linux, qemu, virtual machine, VMware, xen, администрирование, Блог компании DEPO Computers, виртуализация, облачная инфраструктура, Облачные вычисления, метки: , , , , , , , ,

Управление облаком на open source софтеВ последнее время очень модными стали решения по построению облачных систем, облака строят все кому не лень. Для конечного пользователя все прозрачно: «Вот тебе точка входа, вот там твои ресурсы — используй!» И мало кто из них задумывается о том, как оно все устроено внутри. Да и не надо им знать, в сущности. Однако, людям, которые заняты как раз конфигурированием подобных систем, очень интересно, а как же это работает у других? И главное — на чем?

В данный момент имеется достаточно программного обеспечения для создания облачной инфраструктуры и управления ею. Это продукты от VMware, Citrix, Red Hat и т. д. В этом же ряду стоит очень интересный софт под названием OpenNebula. Он содержит в себе инструменты по администрированию системы с консольным и графическим интерфейсом, а также инструменты для конечных пользователей, которые позволяют управлять ресурсами. Посмотреть пример работы можно на видео.

Что ж, попробуем развернуть свою собственную систему управления облаком. Стоит сказать, что в данном материале не будут рассматриваться вопросы подключения к хостам виртуализации — только установка и обзор возможностей.

Preconfig

Итак, для начала ставим Ubuntu 11.10 64 bit Server (можно ставить как на голое железо, так и в качестве виртуальной машины). Установку Ubuntu не рассматриваем, т. к. она проста и описана везде, где только можно. Далее начинаем преконфигурацию сервера.

Создаем пользователя oneadmin и группу cloud:

mkdir -p /srv/cloud/
groupadd -g 10000 cloud
/srv/cloud/one as home folder.
useradd -u 10000 -m oneadmin -d /srv/cloud/one -s /bin/bash -g cloud
passwd oneadmin
chown -R oneadmin:cloud /srv/cloud/

Проверим, возможен ли вход под oneadmin:

su -l oneadmin
exit

Ставим mysql и создаем базу:

apt-get install mysql-server mysql-admin

# mysql -u root -p
mysql> CREATE USER 'oneadmin'@'localhost' IDENTIFIED BY 'oneadmin';
mysql> CREATE DATABASE opennebula;
mysql> GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY 'oneadmin';
mysql> quit;

Управление облаком на open source софте

Install&Configure

Ставим необходимые пакеты:

apt-get install g++ libxmlrpc-c3-dev scons libsqlite3-dev libmysqlclient-dev libxml2-dev libssl-dev ruby libxmlrpc-c3-0 libxmlrpc-core-c3-dev gems

Заходим под oneadmin. Качаем дистрибутив OpenNebula 3.4.0, распаковываем и переходим в каталог:

su -l oneadmin
wget dev.opennebula.org/packages/opennebula-3.4.0/opennebula-3.4.0.tar.gz
tar xzf opennebula-3.4.0.tar.gz
cd opennebula-3.4.0/

Задаем параметры сборки пакета:

scons sqlite=no mysql=yes
exit

Устанавливаем OpenNebula под root’ом:

./install.sh -u oneadmin -g cloud -d /srv/cloud/one

Снова заходим под oneadmin:

su -l oneadmin

И создаем переменные окружения:

nano ~/.bash_profile
export ONE_LOCATION=/srv/cloud/one
export ONE_AUTH=$ONE_LOCATION/.one/one_auth
export ONE_XMLRPC=http://localhost:2633/RPC2
export PATH=$ONE_LOCATION/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:/var/lib/gems/1.8/:$PATH

Применяем:

source ~/.bash_profile

Создаем файл аутентификации, пароль указывается в явном виде:

mkdir ~/.one
echo "oneadmin:<THE_PASSWORD>" > ~/.one/one_auth

Далее вносим необходимые изменения в конфигурационный файл oned.conf:

nano ~/etc/oned.conf

Нужно закомментировать строку:

#DB = [ backend = "sqlite" ]

И указать в качестве бэкэнда mysql:

DB = [ backend = "mysql",
server = "localhost",
port =3306,
user = "oneadmin",
# passwd = "password",
db_name = "opennebula" ]

Значение passwd было закомментировано, так как для пользователя oneadmin в mysql пароль не был задан.

Стартуем сервис oned:

one start

И даем команду «onevm list», просто чтобы посмотреть, запустится ли сервис:

Управление облаком на open source софте

Вывод, понятное дело, будет пустым.

Sunstone Install

Итак, сервис стартовал, ставим необходимые пакеты и GUI:

apt-get install rubygems
gem install json sinatra thin install rack rails rake sequel sqlite3

Далее необходимо поправить конфигурационный файл сервера Sunstone:

nano /srv/cloud/one/etc/sunstone-server.conf

Находим:

# Server Configuration
:host: 127.0.0.1
:port: 9869

И меняем на:

# Server Configuration
:host: 0.0.0.0
:port: 8888

Запускаем Sunstone-сервер под oneadmin и получаем ошибку, смотрим логи:

sunstone-server start

Управление облаком на open source софте

Исправляем ошибки:

gem install rubygems-update
update_rubygems
gem update --system

Стартуем sunstone:

sunstone-server start

GUI

Заходим по адресу ip_address_or_hostname:8888. Заполняем поля имя и пароль, ранее прописанные в one_auth:

Управление облаком на open source софте

Достаточно аскетичный dashboard. С левой стороны дерево инструментов, справа — информация о службах и ресурсах:

Управление облаком на open source софте

Можно переключиться на русский язык:

Управление облаком на open source софте

Кому как привычнее:

Управление облаком на open source софте

Итак, что мы имеем?

Инструменты для создания пользователей, групп и списков доступа:

Управление облаком на open source софте

Управление облаком на open source софте

Управление облаком на open source софте

Управление облаком на open source софте

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

Управление облаком на open source софте

Управление облаком на open source софте

И в самом низу — управление хостами, создание кластеров, добавление хранилищ и создание виртуальных сетей:

Управление облаком на open source софте

Для примера выпадающее окно:

Управление облаком на open source софте

Имеется возможность подключения различных гипервизоров:

Управление облаком на open source софте

Enduser Interface

Это была установка средств администрирования. А что же делать конечному пользователю? Не давать же ему доступ к админской консоли… Для обычных юзеров имеется другой инструментарий.

OCCI install

Находим и правим файл конфигурации occi сервиса:

nano /srv/cloud/one/etc/occi-server.conf

В этом файле необходимо поправить одну строчку:

# Host and port where OCCI server will run
:server: localhost
:port: 4567

на строку:

:server: 0.0.0.0

Мы поменяли еще и порт — поставили 8889, так как установка осуществляется на одном хосте. Далее доставим необходимые пакеты:

apt-get install libxml2 libxslt expat

И стартуем сервис occi:

occi-server start

Идем по нашему IP-адресу или доменному имени (кстати, в документации сказано, что в конфиге необходимо указывать именно FQDN) и смотрим, что у нас получилось:

ip-address_or_fqdn:8889/ui

Управление облаком на open source софте

Логинимся на портал самообслуживания с логином oneadmin и паролем, который был указан ранее.
Далее мы увидим только то, что сконфигурировали для данного пользователя. Если бы ранее мы создали другого пользователя, сконфигурировали для него подсеть, шаблоны ВМ и прочее, то увидели бы соответствующую картинку. А так мы наблюдаем девственно чистый дашборд:

Управление облаком на open source софте

Ну и далее по пунктам:

Управление облаком на open source софте

Управление облаком на open source софте

При наличии необходимых прав можно попробовать и здесь что-нибудь добавить, но работать оно не будет, т. к. не добавлены гипервизоры.

Управление облаком на open source софте

К сожалению, тут русского языка нет, хотя он был бы кстати именно в клиентской части, а не в админке.

Управление облаком на open source софте

Заключение

Вот, собственно, и все. Сервер управления поставили, портал самообслуживания есть — вперед к облакам! Весь инструментарий достаточно прост и функционален. На нашем тестовом стенде все работает без проблем. Рулить всем можно и без GUI, прямо из консоли. Документация достаточно подробная.

Кстати, есть другой способ установки: кому лень проходить описанные выше шаги, можно поставить все одной командой:

apt-get install opennebula

а потом возиться с настройкой конфигов.

Как уже говорилось, топик посвящен описанию установки инструментов, поэтому примеров подключения гипервизоров, создания сетей, хранилищ и всего прочего нет. Если будет интересно, мы расскажем о продукте подробнее в следующей статье.

Удачи всем!

madbug,
руководитель группы «Виртуализация, терминальный доступ» компании DEPO Computers

Автор: DEPOteam


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js