Управление облаком на 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;

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», просто чтобы посмотреть, запустится ли сервис:

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

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

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

gem install rubygems-update
update_rubygems
gem update --system

Стартуем sunstone:

sunstone-server start

GUI

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

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

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

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

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

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

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

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

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

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

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) и смотрим, что у нас получилось:

http:// ip-address_or_fqdn:8889/ui

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

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

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

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

Заключение

Вот, собственно, и все. Сервер управления поставили, портал самообслуживания есть — вперед к облакам! Весь инструментарий достаточно прост и функционален. На нашем тестовом стенде все работает без проблем. Рулить всем можно и без GUI, прямо из консоли. Документация достаточно подробная.Кстати, есть другой способ установки: кому лень проходить описанные выше шаги, можно поставить все одной командой:apt-get install opennebulaа потом возиться с настройкой конфигов.Как уже говорилось, топик посвящен описанию установки инструментов, поэтому примеров подключения гипервизоров, создания сетей, хранилищ и всего прочего нет. Если будет интересно, мы расскажем о продукте подробнее в следующей статье.

Удачи всем!

Источник: http://habrahabr.ru
Ссылка на оригинал статьи: http://habrahabr.ru/company/depocomputers/blog/145826/

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *