Введение

В этой статье мы расскажем как быстро развернуть OpenStack на одном сервере Ubuntu 20.04 LTS.
Сразу оговорим, что если вам необходимо установить высокопроизводительную и масштабируемую облачную инфраструктуру OpenStack, то вариант с размещением основных узлов OpenStack на одной ноде вам не подойдет. Как мы видели из предыдущей статьи, разворачивание даже одного из компонентов OpenStack (Swift) для нагруженных систем требует группу серверов. Решение из этой статьи больше подойдет для задач тестирования, разработки, разворачивания небольших сервисов и т.п.
Технические требования к установке OpenStack:
- 16 ГБ оперативной памяти минимум
- Многоядерный процессор
- 50 ГБ свободного дискового пространства
- Ubuntu 18.04 LTS или более новые версии
Установка Microstack
Установку будем производить при помощи Microstack – специального пакета развертывания OpenStack. Этот способ установки очень удобен, так как нам нет необходимости вручную устанавливать и конфигурировать каждый узел OpenStack. За нас это сделает Microstack. Итак, приступим.
Производить установку Microstack мы будет при помощи удобной системы развертывания пакетов Snappy. Установим утилиту для работы со Snappy:
user@ruvds-a3ee4: sudo apt install snapd
Проверим корректность установки, скачав тестовый пакет и запустив его.
user@ruvds-a3ee4: sudo snap install hello-world
user@ruvds-a3ee4: export PATH=$PATH:/snap/bin
user@ruvds-a3ee4: hello-world
Вывод в случае успеха:
Hello World!
Далее выполним саму установку Microstack как snap-приложение :
user@ruvds-0hrc0:~# sudo snap install microstack --beta --devmode
Вывод:
microstack (beta) ussuri from Canonical✓ installed
Инициализация Microstack
В ходе инициализации Microstack настраивает все необходимые сущности для корректной работы облака OpenStack (узлы с настроенным сетевым взаимодействием между ними, СУБД MySQL, брокер очередей RabbitMQ, основные сервисы для OpenStack).
В ходе установки и инициализации мы получаем основные ключевые компоненты OpenStack:
- Keystone – аутентификация и идентификация всех сервисов OpenStack
- Nova – предоставление виртуальных ресурсов в облаке (виртуальные машины и контейнеры)
- Neutron – сетевое взаимодействие
- Glance – служба для управления экземплярами (виртуальными машинами)
Для инициализации выполним команду:
root@ruvds-a3ee4:~# sudo microstack init --auto --control
Вывод:
2021-04-12 22:50:30,345 - microstack_init - INFO - Configuring clustering ...
2021-04-12 22:50:30,471 - microstack_init - INFO - Setting up as a control node.
2021-04-12 22:50:34,620 - microstack_init - INFO - Configuring networking ...
2021-04-12 22:50:43,134 - microstack_init - INFO - Opening horizon dashboard up to *
2021-04-12 22:50:44,425 - microstack_init - INFO - Waiting for RabbitMQ to start ...
Waiting for 109.196.164.152:5672
2021-04-12 22:50:57,070 - microstack_init - INFO - RabbitMQ started!
2021-04-12 22:50:57,070 - microstack_init - INFO - Configuring RabbitMQ ...
2021-04-12 22:50:59,546 - microstack_init - INFO - RabbitMQ Configured!
2021-04-12 22:50:59,580 - microstack_init - INFO - Waiting for MySQL server to start ...
Waiting for 109.196.164.152:3306
2021-04-12 22:51:11,229 - microstack_init - INFO - Mysql server started! Creating databases ...
2021-04-12 22:51:14,144 - microstack_init - INFO - Configuring Keystone Fernet Keys ...
2021-04-12 22:51:41,455 - microstack_init - INFO - Bootstrapping Keystone ...
2021-04-12 22:52:13,961 - microstack_init - INFO - Creating service project ...
2021-04-12 22:52:23,185 - microstack_init - INFO - Keystone configured!
2021-04-12 22:52:23,219 - microstack_init - INFO - Configuring the Placement service...
2021-04-12 22:52:57,517 - microstack_init - INFO - Running Placement DB migrations...
2021-04-12 22:53:03,613 - microstack_init - INFO - Configuring nova control plane services ...
2021-04-12 22:53:39,027 - microstack_init - INFO - Running Nova API DB migrations (this may take a lot of time)...
2021-04-12 22:54:21,805 - microstack_init - INFO - Running Nova DB migrations (this may take a lot of time)...
Waiting for 109.196.164.152:8774
2021-04-12 22:56:37,778 - microstack_init - INFO - Creating default flavors...
2021-04-12 22:57:20,733 - microstack_init - INFO - Configuring nova compute hypervisor ...
2021-04-12 22:57:23,440 - microstack_init - INFO - Configuring the Spice HTML5 console service...
2021-04-12 22:57:24,279 - microstack_init - INFO - Configuring Neutron
Waiting for 109.196.164.152:9696
2021-04-12 23:00:28,791 - microstack_init - INFO - Configuring Glance ...
Waiting for 109.196.164.152:9292
2021-04-12 23:01:57,482 - microstack_init - INFO - Adding cirros image ...
2021-04-12 23:02:03,543 - microstack_init - INFO - Creating security group rules ...
2021-04-12 23:02:23,427 - microstack_init - INFO - Configuring the Cinder services...
2021-04-12 23:04:10,119 - microstack_init - INFO - Running Cinder DB migrations...
2021-04-12 23:04:41,351 - microstack_init - INFO - restarting libvirt and virtlogd ...
2021-04-12 23:06:23,596 - microstack_init - INFO - Complete. Marked microstack as initialized!
После завершения инициализации мы можем обратиться к OpenStack через web-интерфейс по ссылке:
http://наш адрес сервера/
Логин по умолчанию – admin. Пароль необходимо сгенерировать командой:
root@ruvds-a3ee4:~# sudo snap get microstack config.credentials.keystone-password
Через web-интерфейс мы можем выполнять основные операции с наши облаком. Например, заводить новых пользователей, создавать экземпляры и т.п.
Также с OpenStack мы можем работать, используя интерфейс командной строки (CLI). Чтобы получить список всех команд введем:
root@ruvds-a3ee4:~# microstack.openstack --help
Синтаксис MicroStack CLI схож с python-openstackclient. Также более подробно с Microstack вы можете ознакомиться на странице официальной документации.
Запуск экземпляра OpenStack
Экземплярами в OpenStack называются исполняемые в пределах облака виртуальные машины. Запустим экземпляр test командой:
microstack launch cirros --name test
В данном примере мы использовали образ легковесного дистрибутива Linux – CirrOS.
В случае успешного создания в выводе команда предоставит нам данные как подключиться к экземпляру по SSH.
Access it with `ssh -i /home/ubuntu/snap/microstack/common/.ssh/id_microstack cirros@10.20.20.123`
Подключаемся:
root@ruvds-a3ee4:~# ssh -i /home/ubuntu/snap/microstack/common/.ssh/id_microstack cirros@10.20.20.123
И можем смело с ним работать. Для того, чтобы отключиться от экземпляра используем команду exit.
Созданными экземплярами мы можем управлять из web-браузера. Для этого переходим на страницу нашего облака (http://наш_адрес _сервера/) и находим слева вкладку Instances.
Вывод
В статье мы рассмотрели как произвести установку OpenStack на одном сервере. Познакомились с Microstack и запустили свой первый экземпляр в виде виртуальной машины в облаке OpenStack.