Установка OpenStack
Если вы хотите быстро начать работу, перейдите сюда:
Этот ответ более подробно расскажет о том, как использовать Juju с OpenStack.
Сфера
Платформа OpenStack является мощной и разнообразной. Этот раздел документации в основном касается развертывания «стандартной» работающей системы OpenStack с использованием, но не ограничиваясь, таких компонентов Canonical, как MAAS, Juju и Ubuntu. При необходимости будут упомянуты другие методы и программное обеспечение.
Предположения
- Использование MAAS - следуйте этим инструкциям в первую очередь.
- Использование Juju
- Конфигурация локальной сети. В этом документе предполагается, что у вас есть адекватная конфигурация локальной сети, включая отдельные интерфейсы для доступа к облаку OpenStack. Идеальные сети выложены в [MAAS] [Документация MAAS для OpenStack].
Планирование установки
Перед развертыванием каких-либо сервисов очень полезно проанализировать доступные ресурсы и способы их использования. OpenStack включает в себя несколько взаимосвязанных сервисов (Nova, Swift и т. Д.), Каждый из которых имеет различные требования с точки зрения хостов. Например, сервис Swift, который предоставляет хранилище объектов, имеет другое требование, чем сервис Nova, который предоставляет вычислительные ресурсы.
Минимальные требования к каждой услуге и рекомендации изложены в официальном руководстве по эксплуатации OpenStack.
Рекомендуемый состав узлов для развертывания OpenStack с MAAS и Juju заключается в том, что все узлы в системе должны быть способны запускать ЛЮБОЙ из сервисов. Это лучшая практика для обеспечения надежности системы, поскольку, поскольку любой физический узел должен выходить из строя, другой может быть перенаправлен на его место. Это очевидно распространяется на любые требования к оборудованию, такие как дополнительные сетевые интерфейсы.
Если по соображениям экономии или иным образом вы решите использовать разные конфигурации оборудования, вам следует помнить, что ваша способность преодолевать сбой оборудования будет снижена. Также будет необходимо ориентировать развертывания на конкретные узлы - см. Раздел документации MAAS по тегам .
Создайте файл конфигурации OpenStack
Мы будем использовать прелести Juju для развертывания компонентов OpenStack. Каждый брелок заключает в себе все необходимое для настройки определенного сервиса. Однако у отдельных сервисов есть много опций конфигурации, некоторые из которых мы хотим изменить.
Чтобы сделать эту задачу более легкой и более воспроизводимой, мы создадим отдельный файл конфигурации с соответствующими параметрами для всех служб. Это написано в стандартном формате YAML ( см. Www.yaml.org, если вам это незнакомо ).
Вот пример openstack-config.yaml:
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
Для всех служб мы можем настроить openstack-origin
указатель на источник установки. В этом случае мы будем полагаться на значение по умолчанию, которое будет указывать на соответствующие источники для выпуска Ubuntu 14.04 LTS Trusty. Дальнейшая конфигурация для каждого сервиса объяснена в этом документе .
Другие конфигурации
Другие параметры и параметры конфигурации возможны для развертывания сервисов OpenStack. Они подробно описаны в документации отдельных подвесок, используемых Juju, и их можно проверить, посетив онлайн-магазин Juju Charm Store и выполнив поиск очарования, используя окно поиска в верхней левой части страницы. настройки конфигурации подробно описаны в разделе «Конфигурация» на главной странице, как показано:
Развертывание OpenStack с помощью Juju
Теперь, когда конфигурация определена, мы можем использовать Juju для развертывания и связывания сервисов.
Инициализация Джуджу
Джуджу требует минимального количества настроек. Здесь мы предполагаем, что он уже настроен для работы с вашим кластером MAAS (для получения дополнительной информации см. [Руководство по установке Juju] [juju_install].
Во-первых, нам нужно получить изображения и инструменты, которые Juju будет использовать:
juju sync-tools --debug
Затем мы можем создать экземпляр начальной загрузки:
juju bootstrap --upload-tools --debug
Мы используем переключатель upload-tools, чтобы использовать локальные версии инструментов, которые мы только что загрузили. Переключатель отладки даст подробный вывод, который может быть полезен. Этот процесс может занять несколько минут, поскольку Juju создает экземпляр и устанавливает инструменты. Когда он закончится, вы можете проверить состояние системы с помощью команды:
juju status
Это должно вернуть что-то вроде:
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
Разверните OpenStack Charms
Теперь, когда узел начальной загрузки Juju запущен и работает, мы можем развернуть службы, необходимые для нашей установки OpenStack. Чтобы правильно настроить эти службы по мере их развертывания, мы будем использовать файл конфигурации, который мы определили ранее, передавая его вместе с --config
коммутатором с каждой командой развертывания. Подставьте имя и путь к вашему файлу конфигурации, если они разные.
Полезно, но не обязательно, развертывать сервисы в следующем порядке. Также настоятельно рекомендуется открыть дополнительное окно терминала и запустить команду juju debug-log
. Это выведет журналы всех служб по мере их запуска и может быть полезно для устранения неполадок.
Также рекомендуется juju status
периодически запускать команду, чтобы убедиться, что каждая служба установлена и работает правильно. Juju автоматически попытается получить самую лучшую версию очарования из интернет-магазина Charm. Если вы выполняете установку из закрытой или закрытой сети, можно предварительно получить необходимые прелести. См. [Документация для автономных подвесок] [подвески в автономном режиме].
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
Добавить отношения между сервисами OpenStack
Хотя службы теперь развернуты, они еще не связаны друг с другом. Каждый сервис в настоящее время существует в изоляции. Мы используем juju add-relation
команду, чтобы они знали друг о друге и настраивали любые соответствующие соединения и протоколы. Об этой дополнительной конфигурации заботятся сами отдельные подвески.
Мы должны начать добавлять отношения между брелоками, настроив службу авторизации Keystone и ее базу данных, так как это понадобится многим другим соединениям:
juju add-relation keystone mysql
Мы ждем, пока не установится связь. После того, как это закончится, проверьте это со статусом juju:
juju status mysql
juju status keystone
Это обслуживание может занять несколько минут. Хотя, конечно, можно продолжать добавлять отношения (Juju управляет очередью для ожидающих действий), но это может быть контрпродуктивно с точки зрения общего времени, затрачиваемого на связь, поскольку многие отношения относятся к одним и тем же услугам.
Следующие отношения также должны быть сделаны:
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
Наконец, вывод статуса juju должен показать все отношения как завершенные. Облако OpenStack уже запущено, но оно должно быть заполнено некоторыми дополнительными компонентами, прежде чем оно будет готово к использованию.