Пробуем CloudStack 4. Устанавливаем и радуемся его работе

Статья была написана  8 декабря 2012 г. Перенесена из старого блога.

Забегая вперед на несколько статей

Предварительно необходимо иметь нормально функционирующий DNS сервер способный резолвить имена NFS, iSCSI-серверров и всех хостов которые планируется поключить в CloudStack облако. Даже в тестовой среде, настоятельно рекомендую завести DNS-сервер — это позволяет избежать кучи проблем и путаницы в IP-адрессах.

Два слова о CloudStack

По сути, CloudStack это управляющий сервер(Management Server node) для XenServer и KVM хостов с поддержкой NFS и iSCSI-хранилищ, позволяющий более гибко(по облочному) управлять подконтрольными ему ресурсами(хостами, хранилищами, виртуальными машинами). В отличии от OpenStack здесь нет кучи различных ролей и базовых компонентов разнесенных(в идеале) по разным серверам. Для своей работы, CloudStack’у необходим только MySQL который может быть установлен на том же сервере(Single Management Server node). В случае развертывания нескольких серверов CloudStack(Multiple Management Server nodes) MySQL должен быть вынесен на отдельный сервер.

После установки, CloudStack берет управление всей инфраструктурой на себя, при этом управлять хостами с помощью XenCenter(для XenServer) или например Virt-manager, virsh(для KVM-хостов) никто не запрещает, хотя это может привести к рассинхронизации конфигурации в разных консолях.

Установка

В моем случае, установка CloudStack была выполнена на Ubuntu Server 12.04. Хотя, так же поддерживаются CentOS/RHEL 6.3. Установка очень проста и достаточно детально и понятно описана в официальном мануале. Здесь, я лиш опишу основные шаги и маленькие отклонения от мануала которые мне пришлось выполнить для корректной работы CloudStack.

Минимальные системные требования, которые кстати сказать, соблюдать не принципиально.

ОС: CentOS/RHEL 6.3+ или Ubuntu 12.04
Процессор: 64-bit x86 CPU
Память: 4 GB
Жесткий: 50 GB
Сетевой интерфейс с настроенным статическим IP-адрессом
Полное доменное имя. Это кстати важный пункт о котором далее.

1. Подключение репозитория

В офицеальном мануале сказано создать файл репозитория
/etc/apt/sources.list.d/cloudstack
И добавить в него строчку
deb http://cloudstack.apt-get.eu/ubuntu precise 4.0
после чего установить публичный ключ для репозитория командой

$ wget -O — http://cloudstack.apt-get.eu/release.asc | apt-key add —

и обновить репозитории в том числе и добавленный выше от CloudStack.

$ apt-get update

Все бы хорошо, но сразу штанга! Строчку
deb http://cloudstack.apt-get.eu/ubuntu precise 4.0
нужно дописать в файл /etc/apt/source.list иначе увы, нечего не обновится и не взлетит.

2. Подготовка к установке

Перед установкой необходимо установить нормальное доменное имя для CloudStack-сервера и прописать его в его же локальном /etc/hosts. Иначе нечего не заработает. Далее сконфигурировать сетевой адаптер прописав для него статический IP-адресс, DNS-сервера и проверить доступность Интернет соединения. Необходимо вырубить SELinux если он работает. А так же, рекомендуется настроить синхронизацию времени как на CloudStack сервере так и на хостах(XenServer и KVM) и стораджах по средствам службы NTP.

3. Далее необходимо скачать vhd-util  для работы с шаблонами ВМ и положить в

/usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/ в случае Ubuntu или в /usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver в случае CentOS/RHEL 6.3.
Отсутствующие каталоги необходимо предварительно создать.

4. Устанавливаем первый(в моем случае и единственный) CloudStack сервер(Management Server nodes) и все что ему необходимо по зависимостям, одной командой. Нужно быть root’ом.

# apt-get install cloud-client

5. Устанавливаем MySQL

В моем случае, MySQL был установлен в процессе инсталяции базовой системы Ubuntu Server 12.04. Поэтому данный шаг я пропустил. Если у вас не установлен то сделайте:

# apt-get install mysql-server

6. Подключаем CloudStack к MySQL

# cloud-setup-databases cloud:<произвольныйПарольДляНовогоПользователяБазы>@localhost —deploy-as=root:<парольRoot>

Должно произойти следующее:

Mysql user name:cloud [ OK ]
Mysql user password:<пароль> [ OK ]
Mysql server ip:localhost [ OK ]
Mysql server port:3306 [ OK ]
Mysql root user name:root [ OK ]
Mysql root user password:<пароль> [ OK ]
Checking Cloud database files … [ OK ]
Checking local machine hostname … [ OK ]
Checking SELinux setup … [ OK ]
Detected local IP address as 192.168.0.21, will use as cluster management server node IP[ OK ]
Preparing /etc/cloud/management/db.properties [ OK ]
Applying /usr/share/cloud/setup/create-database.sql [ OK ]
Applying /usr/share/cloud/setup/create-schema.sql [ OK ]
Applying /usr/share/cloud/setup/create-database-premium.sql [ OK ]
Applying /usr/share/cloud/setup/create-schema-premium.sql [ OK ]
Applying /usr/share/cloud/setup/server-setup.sql [ OK ]
Applying /usr/share/cloud/setup/templates.sql [ OK ]
Applying /usr/share/cloud/setup/create-index-fk.sql [ OK ]
Processing encryption … [ OK ]
Finalizing setup … [ OK ]
CloudStack has successfully initialized database, you can check your database configuration in /etc/cloud/management/db.properties

7. Подготавливаем локальные Primary и Secondary NFS-стораджи.

Полный бред если честно. Предполагается, что эти настроенные стораджы(для очень бедных) будут подключены к хостам(XenServer и KVM) для хранения на них ВМ. Я не стал заниматься этой ерундой т. к. имею нормальные NFS и iSCSI стораджи которые подключил к CloudStack позже. Конечно же, если у вас нет выделенного NFS или iSCSI сервера то такой способ пройдется кстати но только в целях тестирования.

8. Все. Запускаем CloudStack Management Server:

# cloud-setup-management

Starting to configure CloudStack Management Server:
Configure sudoers … [OK]
Configure Firewall … [OK]
Configure CloudStack Management Server …[OK]
CloudStack Management Server setup is Done!

После чего проходим по адрессу сервера http://<адрессСервера>:8080/client/ и видим страничку приветствия! Учетная запись по умолчанию Admin с паролем password.


Рис. №1. Страничка авторизации CloudStack при выборе языка на которой доступен русский.

При выборе русского, авторизация проходила после чего открывалась страничка с чистой рамочкой и не какого интерфейса вообще. Возможно это только у меня(.

Далее жмем «I have used CloudStack before, skip this guide» если не хотим выполнять преднастройку облака или же жмем «Continue with basik installation», после чего нам предложат сменить пароль Admin’а и пройти не короткий но логичный путь первичного конфигурирования облака. Предполагается что системы хранения, хосты(XenServer или KVM) и сеть уже настроенны и запущенны. Мастера доступные из основного интерфейса(не из интерфейса предварительной настройки) более продвинутые и позволяют задать дополнительные настройки не доступные в первоначальном мастере. Но об этом уже в следующих статьях.