Установка openstack на виртуальную машину

Облако в Ubuntu своими руками

В этой статье не будет долгой и порой скучной теории о том, что такое OpenStack, зачем его использовать Мы сразу приступим к самому интересному — к установке OpenStack в Ubuntu 16.04.

Устанавливать OpenStack можно, как на физический компьютер, например, на личный ноутбук или на виртуальную машину в облаке. Мы будем использовать собственные виртуальные машины.

Как минимум, понадобится машина с двумя процессорами, 4 Гб «оперативки», доступом к Интернету, а также доступными извне портами 22 и 80. Для установки OpenStack мы будем использовать DevStack, который предоставляет набор инструментов для установки основных сервисов OpenStack из исходников, необходимых для разработки и тестирования. Так вот, DevStack поддерживает Ubuntu 16.04/17.04, Fedora 24/25, CentOS 7, а также некоторые версии Debian и OpenSUSE. Если у вас нет особых предпочтений, то наиболее тщательно тестировалась работа DevStack на Ubuntu 16.04, именно поэтому данная версия и выбрана в качестве целевой (хотя уже доступна 18.04).

Конфигурация нашей виртуальной машины будет превышать минимальные системные требования — 4 процессора, 8 Гб памяти:

Установка openstack на виртуальную машину. Смотреть фото Установка openstack на виртуальную машину. Смотреть картинку Установка openstack на виртуальную машину. Картинка про Установка openstack на виртуальную машину. Фото Установка openstack на виртуальную машину

Конфигурация виртуальной машины

Сразу нужно заметить, что машина, на которую будет установлен DevStack, должна быть выделенной для него и только для него. Никаких других функций машина выполнять не должна. Желательно выполнять установку DevStack на чистую машину, на которую не устанавливалось другое ПО.

После создания виртуальной машины войдите на нее по ssh. Первым делом нам нужно создать пользователя и предоставить ему права sudo. Сделаем это:

Первая команда создает пользователя с именем stack. Вторая – предоставляет ему sudo-права.

В результате вы должны увидеть вывод:

stack ALL=(ALL) NOPASSWD: ALL

Установка openstack на виртуальную машину. Смотреть фото Установка openstack на виртуальную машину. Смотреть картинку Установка openstack на виртуальную машину. Картинка про Установка openstack на виртуальную машину. Фото Установка openstack на виртуальную машину

Пользователь stack создан

Войдите под пользователем stack и загрузите DevStack:

Установка openstack на виртуальную машину. Смотреть фото Установка openstack на виртуальную машину. Смотреть картинку Установка openstack на виртуальную машину. Картинка про Установка openstack на виртуальную машину. Фото Установка openstack на виртуальную машину

Данная команда клонировала релиз Pike. При желании вы можете загрузить более свежие релизы Rocky или Queens. Список релизов доступен по адресу https://releases.openstack.org/.

После клонирования сразу перейдите в каталог devstack:

Источник

Настройка среды разработки под OpenStack

О системе OpenStack была масса статей на Хабре, однако ни одна не затрагивала вопросы разработки и тестирования составных сервисов. Скажу сразу, настраивать среду голыми руками дело не из легких и не совсем уж благодарное. К счастью, существует официальная программа под названием Devstack, которая представляет собой набор скриптов для автоматической установки OpenStack на локальную виртуальную машину. Ну вот, хотелось бы тут и закончить статью, однако не все так складно с этим Devstack. А именно, установить его — это целый процесс танца с бубнами и выбора правильных конфигурационных параметров. К тому же проект движется своим шагом, и то, что работало сегодня может вылететь при любом новом комите.

Задача

Собираем

Для сборки в арсенале должны быть следующие орудия труда: VirtualBox, Vagrant. Все остальное должно поставиться само. Я собирал на OSX 10.9.2, но думаю проблем с другими *nix ОС быть не должно.

VirtualBox

Тут все просто, идем на www.virtualbox.org, качаем релиз под вашу операционную систему и ставим. Я ставил 4.3.8 ибо Vagrant иногда плюется на 4.2.*, грозя неправильно проставить nfs.

Vagrant

Ставим Vagrant версии 1.3.5 (внимание, при установке любой другой версии работа nfs не гарантированна) и создаем директорию, где будем хранить нашу среду, скажем /home/user/devstack. Кладем в папку файл Vagrantfile со следующим содержанием:

Сохраняем файл, переходим в /home/user/devstack и строим VM

Получаем доступ к VM

Можем теперь перейти непосредственно к установке пакетов и самого devstack. Так как полученная машина у нас совершенно пустая, надо ставить все самим.

Поздравляю, теперь у вас есть ненастроенный, но стабильный devstack release havana.

Devstack

Devstack можно настроить как угодно. Конфигурация довольно гибкая, и местами запутанная. Я собрал для себя конфигурацию, которая ставит все стабильные (havana) сервисы OpenStack, кроме heat. Убедитесь что вы находитесь в папке devstack и создайте файл local.conf (можно и localrc, devstack работаем с обоими)

Убедитесь, что ваш HOST_IP совпадает по значению с private_network ip в Vagrantfile.
Напоминаю рабочиe версии софта для данной конфигурации: VirtualBox 4.3.8, Vagrant 1.3.5

Источник

Установка OpenStack на одном сервере с Ubuntu 20.04 LTS

1264 просмотров 2 2021-04-14

Введение

В этой статье мы расскажем как быстро развернуть OpenStack на одном сервере Ubuntu 20.04 LTS.
Сразу оговорим, что если вам необходимо установить высокопроизводительную и масштабируемую облачную инфраструктуру OpenStack, то вариант с размещением основных узлов OpenStack на одной ноде вам не подойдет. Как мы видели из предыдущей статьи, разворачивание даже одного из компонентов OpenStack (Swift) для нагруженных систем требует группу серверов. Решение из этой статьи больше подойдет для задач тестирования, разработки, разворачивания небольших сервисов и т.п.

Технические требования к установке OpenStack:

Установка Microstack

Установку будем производить при помощи Microstack – специального пакета развертывания OpenStack. Этот способ установки очень удобен, так как нам нет необходимости вручную устанавливать и конфигурировать каждый узел OpenStack. За нас это сделает Microstack. Итак, приступим.
Производить установку Microstack мы будет при помощи удобной системы развертывания пакетов Snappy. Установим утилиту для работы со Snappy:

Проверим корректность установки, скачав тестовый пакет и запустив его.

Вывод в случае успеха:

Далее выполним саму установку Microstack как snap-приложение :

Инициализация Microstack

В ходе инициализации Microstack настраивает все необходимые сущности для корректной работы облака OpenStack (узлы с настроенным сетевым взаимодействием между ними, СУБД MySQL, брокер очередей RabbitMQ, основные сервисы для OpenStack).
В ходе установки и инициализации мы получаем основные ключевые компоненты OpenStack:

Для инициализации выполним команду:

После завершения инициализации мы можем обратиться к OpenStack через web-интерфейс по ссылке:

Логин по умолчанию – admin. Пароль необходимо сгенерировать командой:

Через web-интерфейс мы можем выполнять основные операции с наши облаком. Например, заводить новых пользователей, создавать экземпляры и т.п.
Также с OpenStack мы можем работать, используя интерфейс командной строки (CLI). Чтобы получить список всех команд введем:

Синтаксис MicroStack CLI схож с python-openstackclient. Также более подробно с Microstack вы можете ознакомиться на странице официальной документации.

Запуск экземпляра OpenStack

Экземплярами в OpenStack называются исполняемые в пределах облака виртуальные машины. Запустим экземпляр test командой:

В данном примере мы использовали образ легковесного дистрибутива Linux – CirrOS.
В случае успешного создания в выводе команда предоставит нам данные как подключиться к экземпляру по SSH.

И можем смело с ним работать. Для того, чтобы отключиться от экземпляра используем команду exit.

Созданными экземплярами мы можем управлять из web-браузера. Для этого переходим на страницу нашего облака (http://наш_адрес _сервера/) и находим слева вкладку Instances.

Вывод

В статье мы рассмотрели как произвести установку OpenStack на одном сервере. Познакомились с Microstack и запустили свой первый экземпляр в виде виртуальной машины в облаке OpenStack.

Источник

Установить OpenStack

Установка openstack на виртуальную машину. Смотреть фото Установка openstack на виртуальную машину. Смотреть картинку Установка openstack на виртуальную машину. Картинка про Установка openstack на виртуальную машину. Фото Установка openstack на виртуальную машину

Как установить OpenStack?

Шаги по установке OpenStack

Для установки OpenStack необходимо выполнить следующие шаги:

Шаг 1. Установите Virtual Box или создайте виртуальную машину

Загрузите виртуальную коробку Oracle и создайте машину виртуальной машины с определенной конфигурацией 64-разрядной ОС с 8 ГБ ОЗУ и 300 ГБ памяти. После создания виртуальной машины для конкретной операционной системы откройте терминал и отключите брандмауэр.

Шаг 2: Загрузите версию OpenStack

Используйте приведенную ниже команду для загрузки версии OpenStack через терминал. Команда ‘yum install –y centos-release-OpenStack-newton’

Шаг 3: Обновите пакеты

Используйте приведенную ниже команду для обновления пакета. Команда ‘yum update –y’.

Шаг 4: Используйте инструмент для установки OpenStack

С помощью packstack все службы OpenStack могут быть установлены за один раз, и он позаботится обо всей части установки OpenStack. OpenStack также может быть установлен без помощи инструмента, но для установки сервисов требуется много времени. Команда ‘yum install –y OpenStack-packstack’

Шаг 5: Установка сервисов

Команда ниже используется для установки всех сервисов или компонентов для OpenStack. Команда «packstack –allinone». Он установит все и установка будет завершена для OpenStack.

Шаг 6: Откройте файл администратора

Откройте файл keystonerc_admin, чтобы получить имя пользователя, пароль и URL для открытого стека. Запишите все три вещи.

Шаг 7: Войти

Используйте URL-адрес в браузере и используйте те же учетные данные, чтобы войти в OpenStack, и вы получите панель управления для OpenStack. Другие услуги также перечислены там же.

Компоненты OpenStack

Ниже перечислены некоторые компоненты и службы с кодовыми именами, которые используются в OpenStack:

1. Вычислить:

Это основная часть OpenStack IaaS. Это также упоминается как Нова. Он называется контроллером облачных вычислений. Это в основном написано на Python. Он в основном разработан для расширения без каких-либо патентованных требований к аппаратному и программному обеспечению. Он в основном используется для мониторинга производительности в целом и других файлов журналов.

2. Сеть:

Это помогает в управлении сетями. Он также известен как нейтрон. Это помогает в определении IP-адресов и управлении сетью. Он предоставляет модели для различных приложений для определенных групп пользователей.

3. Блок хранения:

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

4. Идентичность:

Это помогает в отображении центрального каталога пользователей с помощью сервисов OpenStack. Он также называется Keystone. Он в основном действует как система аутентификации для работы облачной системы и ее сервисов. Это гарантирует, что корректор подтвердил подлинность доступа к услуге или инструменту для конкретного пользователя.

5. Изображение:

Используется для хранения сервисов и изображений. С помощью этих изображений, которые хранятся, можно использовать как шаблон. Он также используется для хранения неограниченного количества резервных копий. Он также известен как добавление улучшений в существующую инфраструктуру. Это модуль, который в основном используется для добавления, удаления, обмена и дублирования изображений.

6. Хранение объектов:

7. Панель инструментов:

Кодовое название приборной панели Horizon. Он предоставляет пользователю интерфейс для использования различных сервисов и компонентов, таких как управление вычислительным экземпляром, мониторинг и другие сервисы. Это один из способов взаимодействия с сервисами OpenStack. Он может автоматизировать доступ и инструменты для управления.

8. Оркестровка:

9. Рабочий процесс:

10. Телеметрия:

Вывод: установить OpenStack

OpenStack широко используется в облачных вычислениях организацией для простого развертывания приложений и управления службами для различных пользователей. Наиболее важной особенностью OpenStack является открытый исходный код и бесплатная. Он легко доступен и может использоваться где угодно для публичных и частных облаков. Крупные организации используют OpenStack в качестве облачного сервиса для управления своими приложениями и сервисами, такими как AT & T, BMW и другие.

При настройке OpenStack и его обновлении до последней версии и его долгосрочной поддержке возникают некоторые проблемы. Существует хорошее онлайн-сообщество поддержки, которое помогает исправлять проблемы и легко изучать OpenStack. Это один из лучших вариантов, чтобы начать работать над облачными вычислениями и улучшить обучение в облачной области.

Рекомендуемые статьи

Источник

OpenStack — разворачиваем «руками» Kilo

Привет всем Хабралюдям!

В общем-то эта система позволит нам запускать множество виртуальных машин (сколько позволит памяти и CPU на compute), создавать виртуальные сети, создавать виртуальные диски и подключать их к VM, ну и конечно управлять всем этим через удобный дашборд.

Осторожно! Много «портянок» со списком команд и конфигами!

Не надо бездумно «копипастить». Это, конечно, поможет установить OpenStack-среду по данному руководству, но не научит использовать это знание в полевых условиях.

Что будем использовать?
Подготовка

В оригинальном руководстве используется 4 сети:
Management — 10.0.0.0/24 — VLAN 10
Tunnel — 10.0.1.0/24 — VLAN 11
Storage — 10.0.2.0/24 — VLAN 12
External — 192.168.1.0/24

External-сеть в нашем случае смотрит куда-нибудь в домашнюю сеть, но по большому счёту этот интерфейс может смотреть и во «всемирную паутину» — всё зависит от того, для чего разворачиваете облако.

Будет очень неплохо иметь работоспособный dns-server. Я использовал dnsmasq.

Проверяем, чтобы обе машины видели друг друга и ходили в сеть.

На вычислительной ноде:

Репозиторий Kilo

Kilo довольно молодой выпуск — апрель 2015 года. Больше всего в этом релизе мне понравился русский язык в интерфейсе Horizon.
Более подробно можно почитать тут.

SQL + RabbitMQ

В роли SQL сервера может быть MySQL, PostgreSQL, Oracle или любой другой, который поддерживается SQLAlchemy. Мы будем устанавливать MariaDB как и в официальном мануале.

Если есть лишние HDD с хорошей производительностью, то файлы БД можно положить на него и это не будет лишним, если вы планируете развивать стенд вычислительными нодами.

Ну и конечно же RabbitMQ:

Мы устанавливаем рээбита и запускаем административную WebGUI, для удобства слежения за очередями.

Создаём пользователя и устанавливаем права ему:

Keystone

Keystone — центр авторизации для OpenStack. Все авторизации проходят через него. Данные Keystone хранит в SQL-БД, но использует так же и memcache.

Естественно, не забудьте подставить свой пароль, как и везде.

Отключаем автозагрузку keystone сервиса и устанавливаем все необходимые компоненты:

В конфиге /etc/keystone/keystone.conf прописываем следующие строки:

Мы меняем ServerName на имя нашего контроллера.
Рабочие скрипты мы берём с репозитория openstack.

Настроим endpoint`ы. Вообщем-то именно благодаря endpoint`ам openstack будет знать где и какой сервис работает.

Добавим переменные окружения, для того чтобы не указывать их каждый раз в параметрах keystone:

Теперь создаём сервис:

Ну и создаём API endpoint:

RegionOne можно поменять на любое удобочитаемое имя. Я буду использовать его, чтобы не «заморачиваться».

Создаём проекты, пользователей и роли.

Будем продолжать делать по официальному ману, так что всё так же: админ и демо

Пароль для админа придумайте сами. По порядку: создали проект «Admin Project», пользователя и роль admin, и соединяем проект и пользователя с ролью.

Теперь создаём проектservice:

По аналогии с admin`ом создаём demo:

Создадим скрипты окружения:

На этом настройка сервиса keystone закончена.

Glance

Glance — это инструмент OpenStack для хранения шаблонов (образов) виртуальных машин. Образы могут храниться в Swift, в собственном хранилище Glance`а, но и где-то ещё — главное чтобы этот образ можно было получить по http.

Начнём как всегда с mysql:

Создадим в keystone информацию о будущем сервисе:

Мы создаём пользователя glance и подключаем его к роли admin, т.к. все сервисы будут работать именно от этой роли, мы создаём сервис glance, задаём endpoint.

Теперь приступим к установке:

Что бы ни было в секции Установка openstack на виртуальную машину — это нужно удалить. GLANCE_PASS — пароль от пользователя glance в keystone. filesystem_store_datadir это путь к хранилищу, где будут лежать наши образы. Рекомендую подмонтировать к этой директории или рейд-массив или надёжное сетевое хранилище, чтобы случайно не потерять все наши образы из-за отказа диска.

В /etc/glance/glance-registry.conf дублируем ту же информацию из секций database, keystone_authtoken, paste_deploy, DEFAULT.

Перезапускаем сервисы и удаляем локальную БД:

В официальном мануале загружается cirros, который в общем-то нам не нужен, так что мы загрузим образ Ubuntu:

Можно сразу залить все нужные нам образы, но думаю дождёмся момента, когда у нас появится Dashboard.
Целом — наш сервис Glance готов.

Nova — основная часть IaaS в OpenStack. Собственно благодаря Nova создаются виртуальные машины автоматически. Nova может взаимодействовать с KVM, Xen, Hyper-V, VMware и кажется Ironic (честно говоря не совсем понимаю как это работает). Мы будем использовать KVM, для других гипервизоров конфиги будут отличаться.

Контроллер

Опять начинаем с БД:

Добавляем информацию в keystone:

Устанавливаем необходимые пакеты:

Синхронизируем БД, перезапускаем сервисы и удаляем локальную БД.

Вычислительный узел

Теперь мы наконец начнём работать с вычислительным узлом. Все описанные действия справедливы для каждого вычислительного узла в нашей системе.

MANAGEMENT_INTERFACE_IP_ADDRESS это адрес вычислительного узла из VLAN 10.
В novncproxy_base_url controller должен соответствовать тому адресу, через который будет возможность обратиться через Web-browser. Иначе вы не сможете воспользоваться vnc-консолью из Horizon.

Перезапускаем сервис и удаляем локальную копию БД:

Проверяем всё ли правильно работает:

5ая строчка говорит о том, что мы всё правильно сделали.

Мы сделали самое главное — теперь у нас есть IaaS.

Neutron

Neutron это сервис предоставляющий сеть как услуга (NaaS). Вообще официальная документация немного другое определение даёт, но так думаю будет понятнее. Nova-networking объявлен как устаревший в новых версиях OpenStack, поэтому его мы использовать не будем. Да и функционал у neutron значительно шире.

Контроллер

Мы устанавливаем ядро сети на контроллере, хотя в мануале используется 3я нода. Если вычислительных нод будет достаточно много (>10) и/или сетевая нагрузка будет достаточно высокая, то лучше вынести Network-сервер на отдельную ноду.

Как всегда начнём с БД

Устанавливаем необходимые компоненты:

Так же необходимо подправить /etc/sysctl.conf

Убиваем все процессы dnsmasq

Из nova.conf не удаляем ничего, только добавляем.

Синхронизируем БД и перезапускаем сервисы:

Создаём мост и связываем его с external-интерфейсом

Вычислительный узел

Добавляем строчки в /etc/nova/nova.conf

Если я ничего не забыл упомянуть, то должно получиться так:

Сейчас мы сделаем начальную заготовку наших сетей. Мы создадим одну внешнюю сеть и одну внутреннюю.

Создаём виртуальную сеть:

Настраиваем нашу внешнюю подсеть:

Наша внешняя сеть 192.168.1.0/24 и маршрутизатор выпускающий в интернет 192.168.1.1. Внешние адреса для нашего облака будут выдаваться из диапазона 192.168.1.101-200.

Далее мы будем создавать внутреннюю сеть для проекта demo, поэтому следует загрузить переменные для demo-юзера:

Теперь создаём виртуальную внутреннюю сеть:

Понятно, что наша виртуальная сеть будет 172.16.1.0/24 и все инстансы из неё будут получать в качестве маршрутизатора 172.16.1.1.
Вопрос: что это за маршрутизатор?
Ответ: это виртуальный маршрутизатор.

«Фишка» в том, что в Neutron можно строить виртуальные сети с достаточно большим количеством подсетей, а значит для них необходим виртуальный маршрутизатор. Каждый виртуальный маршрутизатор можно добавлять порты в любую из доступных виртуальных и внешних сетей. И это действительно «сильно»! Мы назначаем маршрутизаторам только только доступ к сетям, а всеми правилами firewall мы управляем из групп безопасности. Более того! Мы можем создать виртуальную машину с программным маршрутизатором, настроить интерфейсы во все необходимые сети и управлять доступом через него (я пробовал использовать Mikrotik).
В общем, Neutron даёт простор фантазии.

Создаём виртуальный маршрутизатор, назначаем ему интерфейс в demo-subnet и присоединяем его к внешней сети:

Теперь из внешней сети должен пинговаться наш виртуальный маршрутизатор:

В целом, у нас уже есть работоспособное облако с сетью.

Cinder (Блочное хранилище)

Cinder — сервис предоставляющий возможность управлять блочными устройствами (виртуальными дисками), присоединять их к виртуальным инстансам. Виртуальные диски могут быть и загрузочными. Это может быть очень удобно для переноса VM на другой вычислительный инстанс.

Установка необходимых пакетов:

Далее синхронизируем БД и перезапускаем сервисы:

Т.к. наш контроллер будет так же и хранилищем, то следующие действия так же проводим на нём.
Устанавливаем необходимые пакеты:

Помните я упоминал в конфигурации про два 500Гб диска? Мы из них сделаем RAID 1 (уж это описывать я не буду). Чисто технически, мы могли бы просто создать lvm-раздел из двух физических дисков, но такой вариант плох тем, что у нас не HA-проект и падение одного из дисков может быть критичным. Разбирать как создать RAID-массив я не буду, это легко гуглится. Будем считать, что наш рейд называется /dev/md1:

Мы создали физическое LVM-устройство и создали lvm-группу cinder-volumes.
Далее правим /etc/lvm/lvm.conf.
Находим (или добавляем) туда такую строку:

Будем считать, что кроме как на рейд-разделе у нас ничего связанного с lvm нет. Если рабочий раздел так же развёрнут на lvm, то следует его добавить. Например, если наша система развёрнута на /dev/md0 и поверх неё развёрнут lvm, то наш конфиг будет выглядеть так:

В целом, думаю для тех, кто сталкивался с lvm это не должно быть сложно.

Устанавливаем необходимые пакеты:

добавляем в конфиг:

И перезапускаем сервисы:

Horizon (dashboard)

Horizon — дашбоард для OpenStack, написан на Python 2.7, движком является Django. Из него ведётся полное управление всей средой OpenStack: управление пользователями/проектами/ролями, управление образами, виртуальными дисками, инстансами, сетями и т.д.

Установка

Установку можно производить на отдельном сервере с доступом к Controller-ноде, но мы установим на контроллере.

Поправим конфиг /etc/openstack-dashboard/local_settings.py:

TIME_ZONE — ваш часовой пояс может быть (и скорее всего будет) другой. Тут найдёте свой.

Теперь можно заходить на controller/horizon. В предыдущей моей публикации можно посмотреть скрины дашборда. В ubuntu дополнительно устанавливается пакет openstack-dashboard-ubuntu-theme, который добавляет некоторые ссылки с намёком на Juju. Если захочется вернуть оригинальную версию, то можно просто удалить пакет.

Так же можно в профиле пользователя выбрать язык интерфейса Русский, то изрядно облегчит работу Developer`ам.

Публикация получилась весьма громоздкая, но не хотелось разделять.
Надеюсь статья поможет кому-либо.
В следующей публикации (если мою карму не закидают «помидорами») буду описывать примитивную установку Chef-сервера и простого рецепта.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *