Итак, поскольку наша замечательная облачная платформа является комплексным наслоением одной питонятины на другую - перед установкой и настройкой основных компонентов нам потребуется установить и настроить более тривиальные запчасти.
И ещё один шаг, который нам предстоит пройти перед даже настройкой окружения - это решение архитектурных вопросов нашего будущего облака. Будет ли нужен нам HA, захотим ли мы делать failover для менеджмент-нод, будет ли у нас сеть выходить напрямую с гипервизоров или мы будем использовать network-ноды для отправки траффика из облака и многие, многие другие.
В данном сетапе я возьму, пожалуй самую простейшую архитектуру: 1 менеджмент нода + 2 compute ноды, а так же распределённую хранилку на базе CEPH1)
Карта сети выглядит примерно вот так:
Между всеми хостами будет поднята mesh-сеть на основе tinc, дабы обеспечить изоляцию от других сервисов и удобство конфигурирования.
За БД, которую будем использовать для OpenStack я некоторое время размышлял, но, как гласит старая народная мудрость, Маша2) это Маша, а два раза это два раза, поэтому в конечном итоге я пришёл к выводу, что буду использовать PostgreSQL.
Так же нам понадобится брокер сообщений, которым конечно же выступит незабвенный RabbitMQ3)
Поскольку мы будем использовать подо всем этим Centos, то первым делом, как и в большинстве руководств по использованию этой системы, отключаем SELinux. Делается это достаточно просто - в файлике /etc/selinux/config меняем enforced на disabled и перезагружаемся.
Если openstack корячится руками - можно использовать удобную табличку с паролями:
Пароль для БД | DATABASE_PASSWORD |
Пароль админа OS | ADMIN_PASS |
Пароль БД для Cinder | CINDER_DBPASS |
Пароль для сервиса Cinder | CINDER_PASS |
Пароль БД для BashBoard | DASH_DBPASS |
Пароль пользователя demo | DEMO_PASS |
Пароль БД для Glance | GLANCE_DBPASS |
Пароль для сервиса Glance | GLANCE_PASS |
Пароль БД для Keystone | KEYSTONE_DBPASS |
Секретный ключ для сервиса метадаты | METADATA_SECRET |
Пароль БД для Neutron | NEUTRON_DBPASS |
Пароль для сервиса Neutron | NEUTRON_PASS |
Пароль БД для Nova | NOVA_DBPASS |
Пароль для сервиса Nova | NOVA_PASS |
Пароль для сервиса Plcaement | PLACEMENT_PASS |
Пароль для пользователя openstack в RabbitMQ | RABBIT_PASS |
Итак, postgresql в centos устанавливается не то, чтобы очевидно и невероятно, но для люителей цемента сложностей вызвать на должно. Для всех остальных же
# yum install postgresql-server postgresql-contrib # postgresql-setup initdb
А ещё нам понадобится поставить запчасти пихона, иначе чуда не произойдёт.
# yum install python-psycopg2
По гайдлайнам предлагается использовать RabbitMQ, не вижу смысла изменять традициям так с ходу.
# yum install rabbitmq-server
Ну и после запуска делаем пользователя для openstack
# rabbitmqctl add_user openstack RABBIT_PASS # rabbitmqctl set_permissions openstack ".*" ".*" ".*"
Ну тут всё тривиально
# yum install memcached python-memcached
Вот тут отдельная статья
И в приципе мы готовы к наливке запчастей OpenStack