Для настройки сервера для запуска Cloud-окружений будем использовать дистрибутив Ubuntu Enterprise Cloud (http://www.ubuntu.com/cloud/private) в который интегрирована поддержка платформы Eucalyptus (http://www.eucalyptus.com/). Будет создан один управляющий cloud-инфраструктурой фронтэнд-сервер и несколько работающих под его началом вспомогательных узлов.Установленный на машинах процессор должен поддерживать средства аппаратной виртуализации Intel VTx (vmx) или AMD-V (svm). Проверить поддержку можно убедившись наличие соответствующих флагов в файле /proc/cpuinfo:
egrep '(vmx|svm)' /proc/cpuinfo
Устанавливаем на сервер и вспомогательные узлы Linux дистрибутив Ubuntu Server 9.10, выбрав в меню загрузчика "Install Ubuntu Enterprise Cloud". Далее проводим инсталляцию с соответствие с личными предпочтениями, а в блоке "Cloud Installation Mode" выбираем для управляющего сервера значение по умолчанию "Cluster", а при установке дополнительных узлов - "Node".
++ Настройка вспомогательных узлов Cloud-инфраструктуры.
Устанавливаем на узлах публичный SSH-ключ управляющего сервера:
1. Задаем пользователю eucalyptus на конечных узлах пароль:
sudo passwd eucalyptus
2. На стороне управляющего сервера запускаем команду копирования ssh-ключа на узлы:
sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@IP_адрес_узла
3. Очищаем ранее установленный пароль для пользователя eucalyptus, чтобы заходить можно было только по ключам шифрования:
sudo passwd -d eucalyptus
После того как аутентификация по ssh-ключам настроена на всех узлах запускаем на стороне управляющего сервера процесс регистрации узлов:
sudo euca_conf --no-rsync --discover-nodes
++ Получаем и устанавливаем мандат для пользователей cloud-инфраструктуры.
На управляющем пользователе создаем директорию ~/.euca и генерируем идентификационные параметры cloud-инфраструктуры:
mkdir -p ~/.euca
chmod 700 ~/.euca
cd ~/.euca
sudo euca_conf --get-credentials mycreds.zip
unzip mycreds.zip
cd -
++ Настройка EC2 API и AMI утилит.
На управляющем сервере запускаем скрипт для создания параметров окружения Eucalyptus:
~/.euca/eucarc
Для автоматизации запуска добавляем его вызов в ~/.bashrc:
echo "[ -r ~/.euca/eucarc ] && . ~/.euca/eucarc" >> ~/.bashrc
Устанавливаем вспомогательный набор AMI утилит:
sudo apt-get install ec2-ami-tools ec2-api-tools
Для проверки, что все работает, запускаем:
. ~/.euca/eucarc
в ответ должно появиться:
euca-describe-availability-zones verbose
++ Настройка через управляющий web-интерфейс
В браузере открываем страницу https://IP_управляющего_сервера:8443
В качестве имени пользователя и пароля указываем "admin". После первого входа будет сразу предложено поменять пароль и указать контактный email.
++ Установка образов пользовательских cloud-окружений.
В панели управления web-интерфейса выбираем вкладку "Store" и жмем кнопку "Install" рядом с выбранным в списке образом системы. Сразу после нажатия начнется загрузка из сети выбранного образа и затем его установка.
++ Запуск образов пользовательских cloud-окружений.
Перед первым стартом окружения на узле создаем для него SSH-ключ на управляющем узле:
touch ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv
euca-add-keypair mykey > ~/.euca/mykey.priv
На узле открываем 22 порт, запустив следующие команды:
euca-describe-groups
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
После этого можно запустить зарегистрированный образ окружения через web-интерфейс: во вкладке "Store" выбираем ссылку "How to Run", в появившемся окне будет отражена полная команда для запуска. Первый запуск может занять довольно долго, так как потребуется время на его копирование в кеш.
За статусом запуска окружения можно наблюдать выполнив команду:
watch -n5 euca-describe-instances
Когда состояние "pending" заменится на "running", к окружению можно подключаться.
Для сохранения IP созданного окружения в переменной IPADDR и входа в него по ssh выполним команду:
IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
Для принудительного завершения работы окружения:
INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
euca-terminate-instances $INSTANCEID
++ Полезная информация
Перезапуск управляющего сервера eucalyptus:
sudo service eucalyptus restart
Для перезапуска ПО на стороне узла:
sudo service eucalyptus-nc restart
Лог сохраняется в /var/log/eucalyptus
Файлы конфигурации находятся в директории /etc/eucalyptus
БД: /var/lib/eucalyptus/db
Ключи шифрования: /var/lib/eucalyptus и /var/lib/eucalyptus/.ssh
Подробнее см. официальное руководство пользователя http://help.ubuntu.com/community/UEC
URL: http://www.serverwatch.com/tutorials/article.php/3858961/art...
Обсуждается: http://www.opennet.dev/tips/info/2283.shtml