![](https://habrastorage.org/getpro/habr/post_images/5ef/af4/6a5/5efaf46a59902f958cc5f6aabdb629a8.jpg)
В данный момент имеется достаточно программного обеспечения для создания облачной инфраструктуры и управления ею. Это продукты от 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;
![](https://habrastorage.org/storage2/a2f/3c0/c02/a2f3c0c02d3c08c6d4f55ebb8479ec04.png)
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», просто чтобы посмотреть, запустится ли сервис:
![](https://habrastorage.org/storage2/0f5/31e/f0b/0f531ef0b9b45f91cf2856a70778168b.png)
Вывод, понятное дело, будет пустым.
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
![](https://habrastorage.org/storage2/136/6e6/6a0/1366e66a0d68d8430f06bc87416a6bac.png)
Исправляем ошибки:
gem install rubygems-update
update_rubygems
gem update --system
Стартуем sunstone:
sunstone-server start
GUI
Заходим по адресу http:// ip_address_or_hostname:8888. Заполняем поля имя и пароль, ранее прописанные в one_auth:
![](https://habrastorage.org/storage2/d5c/69d/759/d5c69d75947fe7522ee323849ca32e6f.png)
Достаточно аскетичный dashboard. С левой стороны дерево инструментов, справа — информация о службах и ресурсах:
![](https://habrastorage.org/storage2/9b8/c77/5da/9b8c775da11779cc339d87059aa70e88.png)
Можно переключиться на русский язык:
![](https://habrastorage.org/storage2/a91/b93/815/a91b9381573d7920024f7427e9e253e9.png)
Кому как привычнее:
![](https://habrastorage.org/storage2/e6b/3d6/749/e6b3d674990ca55b374856c1735bd1f2.png)
Итак, что мы имеем?
Инструменты для создания пользователей, групп и списков доступа:
![](https://habrastorage.org/storage2/560/536/6bb/5605366bbc9fafa39ccf86ece986a242.png)
![](https://habrastorage.org/storage2/b35/7ec/279/b357ec2792cf21fdb72500bcde287e25.png)
![](https://habrastorage.org/storage2/829/3c1/213/8293c121323ff65ea626c68b2bad3344.png)
![](https://habrastorage.org/storage2/fe4/16f/64c/fe416f64c68ec23bf83eba542762815b.png)
Панель для создания образов виртуальных машин, самих виртуалок и шаблонов:
![](https://habrastorage.org/storage2/6c8/b3b/cd8/6c8b3bcd81d7e001dfa89bcb7ba41212.png)
![](https://habrastorage.org/storage2/4e7/baf/e14/4e7bafe144f9cc9a6630722b332c24eb.png)
И в самом низу — управление хостами, создание кластеров, добавление хранилищ и создание виртуальных сетей:
![](https://habrastorage.org/storage2/686/2e8/4b7/6862e84b7636052fa30c5672fad438bf.png)
Для примера выпадающее окно:
![](https://habrastorage.org/storage2/4fa/044/7e2/4fa0447e2966c92c4f96662041826c28.png)
Имеется возможность подключения различных гипервизоров:
![](https://habrastorage.org/storage2/cee/e2e/114/ceee2e11445447ed1e210ff1e8e40465.png)
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
![](https://habrastorage.org/storage2/30b/58b/105/30b58b105cb6c2e4d68a11e7526344a8.png)
Логинимся на портал самообслуживания с логином oneadmin и паролем, который был указан ранее.
Далее мы увидим только то, что сконфигурировали для данного пользователя. Если бы ранее мы создали другого пользователя, сконфигурировали для него подсеть, шаблоны ВМ и прочее, то увидели бы соответствующую картинку. А так мы наблюдаем девственно чистый дашборд:
![](https://habrastorage.org/storage2/c4f/12f/b35/c4f12fb35bf304ebf1659eec37024dc1.png)
Ну и далее по пунктам:
![](https://habrastorage.org/storage2/4c2/38b/296/4c238b296afba7f8b4b21558b90e2179.png)
![](https://habrastorage.org/storage2/297/e01/2bb/297e012bb0240cbaa518952c73a4bd41.png)
При наличии необходимых прав можно попробовать и здесь что-нибудь добавить, но работать оно не будет, т. к. не добавлены гипервизоры.
![](https://habrastorage.org/storage2/a17/e53/489/a17e534899c4989b504b3d4315c790eb.png)
К сожалению, тут русского языка нет, хотя он был бы кстати именно в клиентской части, а не в админке.
![](https://habrastorage.org/storage2/9b8/bb2/936/9b8bb2936d494b29f7994b88da06946c.png)
Заключение
Вот, собственно, и все. Сервер управления поставили, портал самообслуживания есть — вперед к облакам! Весь инструментарий достаточно прост и функционален. На нашем тестовом стенде все работает без проблем. Рулить всем можно и без GUI, прямо из консоли. Документация достаточно подробная.
Кстати, есть другой способ установки: кому лень проходить описанные выше шаги, можно поставить все одной командой:
apt-get install opennebula
а потом возиться с настройкой конфигов.
Как уже говорилось, топик посвящен описанию установки инструментов, поэтому примеров подключения гипервизоров, создания сетей, хранилищ и всего прочего нет. Если будет интересно, мы расскажем о продукте подробнее в следующей статье.
Удачи всем!
madbug,
DEPO Computers