Установка и настройка минимального окружения Openstack Queens

Thank you for reading this post, don't forget to subscribe! 

Подготовка управляющей ноды на centos 7.4

Настро­ить сете­вые адап­те­ры, например:
192.168.10.1 - управ­ля­ю­щая сеть
192.168.11.1 - основ­ная сеть

Hастройка etc/hosts

так­же реко­мен­ду­ет­ся заком­мен­ти­ро­вать запи­си localhost, 127.0.0.1 и ::1

Hастройка NTP

уста­нов­ка chrony

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

про­ве­ря­ем

Добавление репозитария openstack

Доба­вим репо­зи­та­рий уста­но­вив пакет

обно­вим пакеты

уста­нов­ка openstack клиента

уста­нов­ка openstack SELinux

Установка SQL

уста­нав­ли­ва­ем паке­ты mariadb

настрой­ка фай­ла кон­фи­гу­ра­ции подключения

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

настрой­ка mariadb (пароль пароль)

Установка RabbitMQ

уста­но­вим служ­бу оче­ре­дей сообщений

доба­вить пароль для поль­зо­ва­те­ля openstack

выстав­ля­ем пол­ные пра­ва для поль­зо­ва­те­ля openstack

Установка Memcached

Уста­но­вим сер­вис кэши­ро­ва­ния данных

редак­ти­ру­ем файл конфигурации

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

про­ве­ря­ем работу

если нет про­слу­ши­ва­те­ля то запус­ка­ем как демон

тут про­бле­ма с запус­ком из под root, поэто­му после пере­за­груз­ки служ­ба не под­ни­ма­ет­ся автоматом

Установка Etcd

уста­нав­ли­ва­ем рас­пре­де­лен­ное хра­ни­ли­ще ключей-значений

редак­ти­ру­ем файл конфигурации

и при­ве­сти бло­ки member и clustering к сле­ду­ю­ще­му виду

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

Установка службы keystone

Keystone - это служ­ба иден­ти­фи­ка­ции, исполь­зу­е­мая OpenStack для аутен­ти­фи­ка­ции и авторизации
созда­ние БД и поль­зо­ва­те­ля keystone

уста­нов­ка паке­тов для keystone

редак­ти­ру­ем в фай­ле кон­фи­гу­ра­ции  /etc/keystone/keystone.conf сле­ду­ю­щие строки

Запуск запол­не­ния базы keystone

Ини­ци­а­ли­за­ция клю­чей Fernet
Загруз­ка служб keystone

редак­ти­ру­ем файл веб сер­ве­ра /etc/httpd/conf/httpd.conf


созда­ем ярлык

добав­ля­ем httpd в авто­за­груз­ку и запус­ка­ем apache

доба­вим переменные

созда­дим домен в openstack

созда­дим про­ект service и demo

созда­дим demo поль­зо­ва­те­ля

созда­дим роль user

доба­вим поль­зо­ва­те­лю demo роль user в про­ек­те demo

Про­ве­ря­ем рабо­ту служ­бы иден­ти­фи­ка­ции преж­де, чем уста­нав­ли­вать дру­гие службы:
отклю­чим вре­мен­ные пере­мен­ные сре­ды OS_AUTH_URL и OS_PASSWORD

как поль­зо­ва­тель admin запро­сим токен аутентификации

как поль­зо­ва­тель demo запро­сим токен аутентификации

Созда­ние сце­на­ри­ев кли­ент­ской сре­ды OpenStack:

info

Фай­лы сце­на­ри­ев хра­нят паро­ли поль­зо­ва­те­ля, поэто­му долж­ны хра­нит­ся в недо­ступ­ном месте, напри­мер в домаш­нем ката­ло­ге поль­зо­ва­те­ля root

созда­дим и отре­дак­ти­ру­ем файл скрип­та admin-openrc

созда­дим и отре­дак­ти­ру­ем файл скрип­та demo-openrc

Что­бы запус­кать кли­ен­тов в каче­стве кон­крет­но­го про­ек­та и поль­зо­ва­те­ля, вы може­те про­сто загру­зить свя­зан­ный сце­на­рий кли­ент­ской сре­ды перед их запус­ком. Например:
запу­стим скрипт admin-openrc

теперь запро­сим токен аутентификации

про­ве­рить теку­щие пере­мен­ные мож­но командой

Установка службы образов - Glance

Служ­ба обра­зов glance необ­хо­ди­ма для обна­ру­же­ния, реги­стра­ции и извле­че­ния обра­зов вир­ту­аль­ных машин.
Под­го­тов­ка к установке
Созда­дим базу дан­ных и предо­ста­вим права

Запу­стим скрипт с переменными

созда­дим поль­зо­ва­те­ля glance в openstack

Доба­вим роль admin поль­зо­ва­те­лю glance и про­ек­ту service

созда­дим сер­вис glance

Созда­дим конеч­ные точ­ки API для сер­ви­са управ­ле­ния образами

уста­но­вим пакет glance

отре­дак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл API

отре­дак­ти­ру­ем еще один кон­фи­гу­ра­ци­он­ный файл 

Запуск запол­не­ния базы glance

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

Установка службы вычислений - Nova

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

Запу­стим скрипт с переменными

созда­дим поль­зо­ва­те­ля nova в openstack

Доба­вим роль admin

созда­дим сер­вис nova

Созда­дим конеч­ные точ­ки API для сер­ви­са вычислений

созда­дим поль­зо­ва­те­ля placement в openstack

Доба­вим роль admin поль­зо­ва­те­лю placement

созда­дим сер­вис placement

Созда­дим конеч­ные точ­ки API для сер­ви­са placement

уста­но­вим паке­ты nova

отре­дак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл

Вклю­чим доступ к API placement

 

Пере­за­пу­стим веб сервер

запуск запол­не­ния баз и их реги­стра­ция (ошиб­ки  ['use_tpool'] not supported игнорируем)

про­ве­рим заре­ги­стри­ро­ва­ны ли базы в самой nova, вывод дол­жен пока­зать две базы

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервисы

 

Установка службы сети - Neutron

Под­го­тов­ка к установке
Созда­дим базу дан­ных и предо­ста­вим права

Запу­стим скрипт с переменными

созда­дим поль­зо­ва­те­ля neutron в openstack

Доба­вим роль admin

созда­дим сер­вис neutron

Созда­дим конеч­ные точ­ки API служ­бы neutron

далее необ­хо­ди­мо настро­ить сам neutron, есть два вида настро­ек, про­вай­дер­ский и с воз­мож­но­стью само­об­слу­жи­ва­ния. Выби­ра­ем вто­рой так как он име­ет в сво­ем набо­ре служ­бы layer3, к тому же, его все­гда мож­но пере­на­стро­ить как провайдерский.
Уста­нов­ка компонентов

Редак­ти­ру­ем фай­лы конфигрурации

редак­ти­ру­ем файл кон­фи­гу­ра­ции Layer 2 пла­гин

редак­ти­ру­ем файл кон­фи­гу­ра­ции Linux bridge agent, тут необ­хо­ди­мо ука­за­зать при­над­леж­ность сет. интер­фей­сов и IP к раз­ным сетям, у меня это
ens192 - сете­вой интер­фейс управ­ля­ю­щей сети (на этом интер­фей­се есть интер­нет, поэто­му он как бы провайдерский)

Вклю­ча­ем филь­тры сете­вых мостов

редак­ти­ру­ем файл кон­фи­гу­ра­ции dhcp аген­та

редак­ти­ру­ем файл кон­фи­гу­ра­ции служ­бы nova для рабо­ты с neutron

необ­хо­ди­мо создать ссыл­ку для пла­ги­на Layer 2

запол­ним БД

рестарт служ­бы nova

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервисы

 

Установка службы Horizon

Horizon - это даш­борд веб-интерфейс
уста­нов­ка пакета

отре­дак­ти­ру­ем файл кон­фи­гу­ра­ции настроек

отре­дак­ти­ру­ем файл кон­фи­гу­ра­ции сайта

пере­за­пу­стим веб сервер

 

Установка службы хранилища Cinder

Cinder - вир­ту­а­ли­зи­ру­ет управ­ле­ние блоч­ны­ми устрой­ства­ми хра­не­ния и предо­став­ля­ет API для запро­са и исполь­зо­ва­ния этих ресур­сов, для это­го исполь­зу­ет­ся реа­ли­за­ция LVM.
Под­го­тов­ка к установке
Созда­дим базу дан­ных и предо­ста­вим права

Запу­стим скрипт с переменными

созда­дим поль­зо­ва­те­ля glance в openstack

Доба­вим роль admin

созда­дим сервисы

Созда­дим конеч­ные точ­ки API

уста­но­вим пакет

отре­дак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл

Запуск запол­не­ния базы (игно­ри­ру­ем ошиб­ки deprecated)

отре­дак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл nova

пере­за­пу­стим nova

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

 

Подготовка вычислительной ноды на centos 7.4

Настро­ить сете­вые адап­те­ры, например:
192.168.10.2 - управ­ля­ю­щая сеть
192.168.11.2 - основ­ная сеть

Hастройка /etc/hosts

 

так­же реко­мен­ду­ет­ся заком­мен­ти­ро­вать запи­си localhost, 127.0.0.1 и ::1

Hастройка NTP

уста­нов­ка chrony

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

про­ве­ря­ем

Добавление репозитария openstack

Доба­вим репо­зи­та­рий, уста­но­вив пакет

обно­вим пакеты

уста­нов­ка openstack клиента

уста­нов­ка openstack SELinux

Установка службы вычислений - Nova

Уста­нов­ка пакетов

Редак­ти­ру­ем кон­фи­гу­ра­ци­он­ный файл

Про­ве­рим под­дер­жи­ва­ет ли нода виртуализацию

Если эта коман­да воз­вра­ща­ет зна­че­ние циф­ры боль­ше "0", то про­дол­жа­ем настрой­ку, в про­тив­ном слу­чае необ­хо­ди­мо вклю­чить вир­ту­а­ли­за­цию в биосе.

Для кор­рект­ной рабо­ты openstack-nova-compute.service на кон­трол­ле­ре нуж­но открыть порт tcp 5672(команда вво­дит­ся на кон­трол­ле­ре), коман­да для firewalld

так­же раз­ре­шим 80 порт web, пере­за­пу­стим firewall и про­ве­рим добав­ле­ние портов

Воз­вра­ща­ем­ся на ноду и добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

Добавление вычислительной ноды на контроллер

коман­ды ниже выпол­ня­ют­ся на контроллере
вклю­чим переменные

про­смотр суще­ству­ю­щих вычис­ли­тель­ных сервисов

запуск поис­ка вычис­ли­тель­ных сер­ви­сов, под­клю­че­ние про­изой­дет автоматом

На кон­трол­ле­ре в /etc/nova/nova.conf мож­но настро­ить шеду­лер для поис­ка и добавления

Установка службы сети - Neutron

Уста­нов­ка пакетов

Редак­ти­ру­ем фай­лы конфигурации

Редак­ти­ру­ем фай­лы кон­фи­г­ру­ра­ции Linux bridge agent тут необ­хо­ди­мо ука­за­зать при­над­леж­ность сет. интер­фей­сов и IP к раз­ным сетям, у меня это
eno1 - сете­вой интер­фейс управ­ля­ю­щей сети (на этом интер­фей­се есть интер­нет, поэто­му он как бы провайдерский)
local_ip = 192.168.11.2 - IP адрес ноды для пароль сети openstack

редак­ти­ру­ем файл кон­фи­гу­ра­ции служ­бы nova для рабо­ты с neutron

рестарт служ­бы nova

добав­ля­ем в авто­за­груз­ку и вклю­ча­ем сервис

Проверка доступности

пере­хо­дим на http://192.168.10.1/dashbord и вво­дим учет­ные дан­ные domain - default, логин admin
если необ­хо­ди­мо пере­за­гру­зить управ­ля­ю­щую ноду, то после перезагрузки
про­ве­ря­ем рабо­ту memcaсhed

если нет про­слу­ши­ва­те­ля то запус­ка­ем как демон

тут про­бле­ма с запус­ком из под root, поэто­му после пере­за­груз­ки служ­ба не под­ни­ма­ет­ся автоматом
а так­же не забы­ва­ем запу­стить скрипт с пере­мен­ны­ми, лежит в домаш­ней пап­ке root