Цель

Заметки ИТ которые я не хочу потерять

menu_navigation

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

Этапы

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

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

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

nano /etc/hosts
# controller
192.168.10.1 controller
# compute1
192.168.10.2 node1
также рекомендуется закомментировать записи localhost, 127.0.0.1 и ::1

Hастройка NTP

установка chrony
yum install chrony
nano /etc/chrony.conf
server 0.ru.pool.ntp.org iburst
allow 192.168.10.0/24
добавляем в автозагрузку и включаем сервис
systemctl enable chronyd.service
systemctl start chronyd.service
проверяем
clock

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

Добавим репозитарий установив пакет
yum install centos-release-openstack-queens
обновим пакеты
yum upgrade
установка openstack клиента
yum install python-openstackclient
установка openstack SELinux
yum install openstack-selinux

Установка SQL

устанавливаем пакеты mariadb
yum install mariadb mariadb-server python2-PyMySQL
настройка файла конфигурации подключения
cd /etc/my.cnf.d/
touch openstack.cnf
nano openstack.cnf
[mysqld]
bind-address = 192.168.10.1
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8
добавляем в автозагрузку и включаем сервис
systemctl enable mariadb.service
systemctl start mariadb.service
настройка mariadb (пароль пароль)
mysql_secure_installation

Установка RabbitMQ

установим службу очередей сообщений
yum install rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
добавить пароль для пользователя openstack
rabbitmqctl add_user openstack пароль
выставляем полные права для пользователя openstack
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Установка Memcached

Установим сервис кэширования данных
yum install memcached python-memcached
редактируем файл конфигурации
nano /etc/sysconfig/memcached
OPTIONS="-l 192.168.10.1"
добавляем в автозагрузку и включаем сервис
systemctl enable memcached.service
systemctl start memcached.service
проверяем работу
netstat -anp | grep 11211
если нет прослушивателя то запускаем как демон
memcached -d -u nobody
тут проблема с запуском из под root, поэтому после перезагрузки служба не поднимается автоматом

Установка Etcd

устанавливаем распределенное хранилище ключей-значений
yum install etcd
редактируем файл конфигурации
nano /etc/etcd/etcd.conf
и привести блоки member и clustering к следующему виду
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.10.1:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.10.1:2379"
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.10.1:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.10.1:2379"
ETCD_INITIAL_CLUSTER="controller=http://192.168.10.1:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
добавляем в автозагрузку и включаем сервис
systemctl enable etcd
systemctl start etcd

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

Keystone - это служба идентификации, используемая OpenStack для аутентификации и авторизации 
создание БД и пользователя keystone 
mysql -u root -p
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'пароль';
exit
установка пакетов для keystone
yum install openstack-keystone httpd mod_wsgi
редактируем в файле конфигурации  /etc/keystone/keystone.conf следующие строки
[database]
connection = mysql+pymysql://keystone:пароль@controller/keystone
[token]
provider = fernet
Запуск заполнения базы keystone
su -s /bin/sh -c "keystone-manage db_sync" keystone
Инициализация ключей Fernet
Загрузка служб keystone
keystone-manage bootstrap --bootstrap-password пароль \
--bootstrap-admin-url http://192.168.10.1:5000/v3/ \
--bootstrap-internal-url http://192.168.10.1:5000/v3/ \
--bootstrap-public-url http://192.168.10.1:5000/v3/ \
--bootstrap-region-id RegionOne
редактируем файл веб сервера /etc/httpd/conf/httpd.conf
ServerName controller

создаем ярлык
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
добавляем httpd в автозагрузку и запускаем apache
systemctl enable httpd.service
systemctl start httpd.service
добавим переменные
export OS_USERNAME=admin
export OS_PASSWORD=пароль
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
создадим домен в openstack
openstack domain create --description "An Example Domain" example
создадим проект service и demo
openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
создадим demo пользователя
openstack user create --domain default --password-prompt demo
создадим роль user
openstack role create user
добавим пользователю demo роль user в проекте demo
openstack role add --project demo --user demo user

Проверяем работу службы идентификации прежде, чем устанавливать другие службы:
отключим временные переменные среды OS_AUTH_URL и OS_PASSWORD
unset OS_AUTH_URL OS_PASSWORD
как пользователь admin запросим токен аутентификации
openstack --os-auth-url http://192.168.10.1:35357/v3 openstack --os-auth-url http://192.168.10.1:35357/v \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name admin --os-username admin token issue
как пользователь demo запросим токен аутентификации
openstack --os-auth-url http://192.168.10.1:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name demo --os-username demo token issue

Создание сценариев клиентской среды OpenStack:
info
Файлы сценариев хранят пароли пользователя, поэтому должны хранится в недоступном месте, например в домашнем каталоге пользователя root
cd ~
touch admin-openrc.sh
создадим и отредактируем файл скрипта admin-openrc 
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=пароль
export OS_AUTH_URL=http://192.168.10.1:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
создадим и отредактируем файл скрипта demo-openrc
cd ~
touch demo-openrc.sh
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=demo
export OS_AUTH_URL=http://192.168.10.1:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
Чтобы запускать клиентов в качестве конкретного проекта и пользователя, вы можете просто загрузить связанный сценарий клиентской среды перед их запуском. Например:
запустим скрипт admin-openrc
. admin-openrc.sh
теперь запросим токен аутентификации
openstack token issue
проверить текущие переменные можно командой
env

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

Служба образов glance необходима для обнаружения, регистрации и извлечения образов виртуальных машин.
Подготовка к установке
Создадим базу данных и предоставим права
mysql -u root -p
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
  IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
  IDENTIFIED BY 'пароль';
exit
Запустим скрипт с переменными
. admin-openrc.sh
создадим пользователя glance в openstack
openstack user create --domain default --password-prompt glance
Добавим роль admin пользователю glance и проекту service
openstack role add --project service --user glance admin
создадим сервис glance
openstack service create --name glance \
  --description "OpenStack Image" image
Создадим конечные точки API для сервиса управления образами
openstack endpoint create --region RegionOne \
  image public http://controller:9292
openstack endpoint create --region RegionOne \
  image internal http://controller:9292
openstack endpoint create --region RegionOne \
  image admin http://controller:9292
установим пакет glance
yum install openstack-glance
отредактируем конфигурационный файл API
nano /etc/glance/glance-api.conf
[database]
connection = mysql+pymysql://glance:пароль@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = пароль
[paste_deploy]
flavor = keystone
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
отредактируем еще один конфигурационный файл 
nano /etc/glance/glance-registry.conf
[database]
connection = mysql+pymysql://glance:пароль@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = пароль
[paste_deploy]
flavor = keystone
Запуск заполнения базы glance
su -s /bin/sh -c "glance-manage db_sync" glance
добавляем в автозагрузку и включаем сервис
systemctl enable openstack-glance-api.service \
  openstack-glance-registry.service
systemctl start openstack-glance-api.service \
  openstack-glance-registry.service
 

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

Nova - основная служба вычислений, которая позволяет запускать образы виртуальных машин. 
Подготовка к установке
Создадим три базы данных и предоставим права
mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' \
  IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' \
  IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' \
  IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' \
  IDENTIFIED BY 'пароль';
exit
Запустим скрипт с переменными
. admin-openrc.sh
создадим пользователя nova в openstack
openstack user create --domain default --password-prompt nova
Добавим роль admin
openstack role add --project service --user nova admin
создадим сервис nova
openstack service create --name nova \
  --description "OpenStack Compute" compute
Создадим конечные точки API для сервиса вычислений
openstack endpoint create --region RegionOne \
  compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne \
  compute internal http://controller:8774/v2.1
openstack endpoint create --region RegionOne \
  compute admin http://controller:8774/v2.1
создадим пользователя placement в openstack
openstack user create --domain default --password-prompt placement
Добавим роль admin пользователю placement
openstack role add --project service --user placement admin
создадим сервис placement
 openstack service create --name placement --description "Placement API" placement
Создадим конечные точки API для сервиса placement
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778
установим пакеты nova
 yum install openstack-nova-api openstack-nova-conductor \
  openstack-nova-console openstack-nova-novncproxy \
  openstack-nova-scheduler openstack-nova-placement-api
отредактируем конфигурационный файл
 nano /etc/nova/nova.conf
[DEFAULT]
enabled_apis=osapi_compute,metadata
my_ip=192.168.10.1
transport_url=rabbit://openstack:пароль@controller
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
[api_database]
connection=mysql+pymysql://nova:пароль@controller/nova_api
[database]
connection=mysql+pymysql://nova:пароль@controller/nova
[api]
auth_strategy=keystone
[keystone_authtoken]
auth_url=http://controller:5000/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=пароль
[vnc]
enabled=true
server_listen=$my_ip
server_proxyclient_address=$my_ip
[glance]
api_servers=http://controller:9292
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:5000/v3
username=placement
password=пароль
Включим доступ к API placement
nano /etc/httpd/conf.d/00-nova-placement-api.conf 
   = 2.4>
      Require all granted
   

   
      Order allow,deny
      Allow from all
   

Перезапустим веб сервер
 systemctl restart httpd
запуск заполнения баз и их регистрация (ошибки  ['use_tpool'] not supported игнорируем)
su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
su -s /bin/sh -c "nova-manage db sync" nova
проверим зарегистрированы ли базы в самой nova, вывод должен показать две базы
 nova-manage cell_v2 list_cells
добавляем в автозагрузку и включаем сервисы
systemctl enable openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service \
  openstack-nova-consoleauth.service openstack-nova-scheduler.service \
  openstack-nova-conductor.service openstack-nova-novncproxy.service

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

Neutron - сетевая служба
Подготовка к установке
Создадим базу данных и предоставим права
mysql -u root -p
CREATE DATABASE neutron;
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'пароль';
exit
Запустим скрипт с переменными
. admin-openrc.sh
создадим пользователя neutron в openstack
openstack user create --domain default --password-prompt neutron
Добавим роль admin
openstack role add --project service --user neutron admin
создадим сервис neutron
 openstack service create --name neutron \
--description "OpenStack Networking" network
Создадим конечные точки API службы neutron
openstack endpoint create --region RegionOne \
network public http://controller:9696
openstack endpoint create --region RegionOne \
network internal http://controller:9696
openstack endpoint create --region RegionOne \
network admin http://controller:9696
далее необходимо настроить сам neutron, есть два вида настроек, провайдерский и с возможностью самообслуживания. Выбираем второй так как он имеет в своем наборе службы layer3, к тому же, его всегда можно перенастроить как провайдерский.
Установка компонентов
yum install openstack-neutron openstack-neutron-ml2 \
openstack-neutron-linuxbridge ebtables
Редактируем файлы конфигрурации
nano /etc/neutron/neutron.conf
[database]
connection = mysql+pymysql://neutron:пароль@controller/neutron
[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true
transport_url = rabbit://openstack:пароль@controller
auth_strategy = keystone
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = пароль
[nova]
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = пароль
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
редактируем файл конфигурации Layer 2 плагин
nano /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
[ml2_type_flat]
flat_networks = provider
[ml2_type_vxlan]
vni_ranges = 1:1000
[securitygroup]
enable_ipset = true
редактируем файл конфигурации Linux bridge agent, тут необходимо указазать принадлежность сет. интерфейсов и IP к разным сетям, у меня это
ens192 - сетевой интерфейс управляющей сети (на этом интерфейсе есть интернет, поэтому он как бы провайдерский)
local_ip = 192.168.11.1 - IP адрес контроллера для пароль сети openstack
nano /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:ens192
[vxlan]
enable_vxlan = true
local_ip = 192.168.11.1
l2_population = true
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
Включаем фильтры сетевых мостов
nano /usr/lib/sysctl.d/00-system.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

редактируем файл конфигурации dhcp агента
nano /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata = true
редактируем файл конфигурации агента метаданных
nano /etc/neutron/metadata_agent.ini
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = пароль
редактируем файл конфигурации службы nova для работы с neutron
nano /etc/nova/nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_name = service
project_domain_name = default
user_domain_name = default
region_name = RegionOne
username = neutron
password = пароль
service_metadata_proxy = true
metadata_proxy_shared_secret = пароль
необходимо создать ссылку для плагина Layer 2
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
заполним БД
su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf \
--config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
рестарт службы nova
systemctl restart openstack-nova-api.service
добавляем в автозагрузку и включаем сервисы
systemctl enable neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service
systemctl start neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service neutron-l3-agent.service

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

Horizon - это дашборд веб-интерфейс
установка пакета
yum install openstack-dashboard
отредактируем файл конфигурации настроек
nano /etc/openstack-dashboard/local_settings
OPENSTACK_HOST = "controller"
ALLOWED_HOSTS = ['*']
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
}
}
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
TIME_ZONE = "Europe/Moscow"
отредактируем файл конфигурации сайта
nano /etc/httpd/conf.d/openstack-dashboard.conf
WSGIApplicationGroup %{GLOBAL}
перезапустим веб сервер
systemctl restart httpd.service memcached.service

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

Cinder - виртуализирует управление блочными устройствами хранения и предоставляет API для запроса и использования этих ресурсов, для этого используется реализация LVM.
Подготовка к установке
Создадим базу данных и предоставим права
mysql -u root -p
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'пароль';
exit
Запустим скрипт с переменными
. admin-openrc.sh
создадим пользователя glance в openstack
openstack user create --domain default --password-prompt cinder
Добавим роль admin
openstack role add --project service --user cinder admin
создадим сервисы
openstack service create --name cinderv2 \
--description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 \
--description "OpenStack Block Storage" volumev3
Создадим конечные точки API
openstack endpoint create --region RegionOne \
volumev2 public http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev2 internal http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev2 admin http://controller:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev3 public http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev3 internal http://controller:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne \
volumev3 admin http://controller:8776/v3/%\(project_id\)s
установим пакет
yum install openstack-cinder
отредактируем конфигурационный файл
nano /etc/cinder/cinder.conf
[database]
connection = mysql+pymysql://cinder:пароль@controller/cinder
[DEFAULT]
transport_url = rabbit://openstack:пароль@controller
auth_strategy = keystone
my_ip = 192.168.10.1
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = пароль
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
Запуск заполнения базы (игнорируем ошибки deprecated)
su -s /bin/sh -c "cinder-manage db sync" cinder
отредактируем конфигурационный файл nova
nano /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne
перезапустим nova
systemctl restart openstack-nova-api.service
добавляем в автозагрузку и включаем сервис
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

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

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

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


nano /etc/hosts
# controller
192.168.10.1 controller
# compute1
192.168.10.2 node1
также рекомендуется закомментировать записи localhost, 127.0.0.1 и ::1

Hастройка NTP

установка chrony
yum install chrony
nano /etc/chrony.conf
добавляем в автозагрузку и включаем сервис
systemctl enable chronyd.service
systemctl start chronyd.service
проверяем
clock

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

Добавим репозитарий, установив пакет
yum install centos-release-openstack-queens
обновим пакеты
yum upgrade
установка openstack клиента
yum install python-openstackclient
установка openstack SELinux
yum install openstack-selinux

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

Установка пакетов
yum install openstack-nova-compute
Редактируем конфигурационный файл
nano /etc/nova/nova.conf
[DEFAULT]
enabled_apis=osapi_compute,metadata
my_ip=192.168.10.2
transport_url=rabbit://openstack:пароль@controller
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
[api]
auth_strategy=keystone
[keystone_authtoken]
auth_url=http://controller:5000/v3
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=пароль
[vnc]
enabled=True
server_listen=0.0.0.0
server_proxyclient_address=$my_ip
novncproxy_base_url=http://controller:6080/vnc_auto.html
[glance]
api_servers=http://controller:9292
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:5000/v3
username=placement
password=пароль
Проверим поддерживает ли нода виртуализацию
egrep -c '(vmx|svm)' /proc/cpuinfo
Если эта команда возвращает значение цифры больше "0", то продолжаем настройку, в противном случае необходимо включить виртуализацию в биосе.

Для корректной работы openstack-nova-compute.service на контроллере нужно открыть порт tcp 5672(команда вводится на контроллере), команда для firewalld
firewall-cmd --zone=public --permanent --add-port=5672/tcp
также разрешим 80 порт web, перезапустим firewall и проверим добавление портов
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --list-all
Возвращаемся на ноду и добавляем в автозагрузку и включаем сервис
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service

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

команды ниже выполняются на контроллере
включим переменные
. admin-openrc.sh
просмотр существующих вычислительных сервисов
openstack compute service list --service nova-compute
запуск поиска вычислительных сервисов, подключение произойдет автоматом
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
На контроллере в /etc/nova/nova.conf можно настроить шедулер для поиска и добавления
[scheduler]
discover_hosts_in_cells_interval = 300

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

Установка пакетов
yum install openstack-neutron-linuxbridge ebtables ipset
Редактируем файлы конфигурации
nano /etc/neutron/neutron.conf
[DEFAULT]
transport_url=rabbit://openstack:пароль@controller
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = пароль
[oslo_concurrency]
lock_path = /var/lib/neutron/tmp
Редактируем файлы конфигрурации Linux bridge agent тут необходимо указазать принадлежность сет. интерфейсов и IP к разным сетям, у меня это
eno1 - сетевой интерфейс управляющей сети (на этом интерфейсе есть интернет, поэтому он как бы провайдерский)
local_ip = 192.168.11.2 - IP адрес ноды для пароль сети openstack
nano /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:eno1
[vxlan]
enable_vxlan = true
local_ip = 192.168.11.2
l2_population = true
[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
редактируем файл конфигурации службы nova для работы с neutron
nano /etc/nova/nova.conf
[neutron]
url = http://controller:9696
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = пароль
рестарт службы nova
systemctl restart openstack-nova-compute.service
добавляем в автозагрузку и включаем сервис
systemctl enable neutron-linuxbridge-agent.servicesystemctl start neutron-linuxbridge-agent.service

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

переходим на http://192.168.10.1/dashbord и вводим учетные данные domain - default, логин admin
если необходимо перезагрузить управляющую ноду, то после перезагрузки
проверяем работу memcaсhed
netstat -anp | grep 11211
если нет прослушивателя то запускаем как демон
memcached -d -u nobody
тут проблема с запуском из под root, поэтому после перезагрузки служба не поднимается автоматом
а также не забываем запустить скрипт с переменными, лежит в домашней папке root

. admin-openrc.sh

Комментариев нет:

Отправить комментарий