Этапы
Подготовка
управляющей ноды на centos 7.4
Настроить сетевые адаптеры, например:
192.168.10.1 - управляющая сеть
192.168.11.1 - основная сеть
Hастройка etc/hosts
Hастройка NTP
установка chrony
Добавление репозитария
openstack
Добавим репозитарий установив пакет
Установка SQL
устанавливаем пакеты mariadb
Установка
RabbitMQ
установим службу очередей сообщений
Установка Memcached
Установим сервис кэширования данных
Установка Etcd
устанавливаем распределенное хранилище ключей-значений
Установка службы keystone
Keystone - это служба идентификации,
используемая OpenStack для аутентификации и авторизации
создание БД и пользователя keystone
Загрузка служб keystone
создаем ярлык
Проверяем работу службы идентификации прежде, чем устанавливать другие службы:
отключим временные переменные среды OS_AUTH_URL и OS_PASSWORD
Создание сценариев клиентской среды OpenStack:
запустим скрипт admin-openrc
Установка службы образов -
Glance
Служба образов glance необходима для обнаружения, регистрации и извлечения
образов виртуальных машин.
Подготовка к установке
Создадим базу данных и предоставим права
Установка службы вычислений - Nova
Nova - основная служба вычислений, которая позволяет запускать образы
виртуальных машин.
Подготовка к установке
Создадим три базы данных и предоставим права
- Подготовка
управляющей ноды на centos 7.4
- Hастройка etc/hosts
- Hастройка NTP
- Добавление репозитария
openstack
- Установка SQL
- Установка RabbitMQ
- Установка Memcached
- Установка Etcd
- Установка
службы keystone
- Установка
службы образов - Glance
- Установка
службы вычислений - Nova
- Установка
службы сети - Neutron
- Установка
службы Horizon
- Установка
службы хранилища Cinder
- Подготовка
вычислительной ноды на centos 7.4
- Установка
службы вычислений - Nova
- Добавление
вычислительной ноды на контроллер
- Установка
службы сети - Neutron
- Проверка
доступности
Подготовка
управляющей ноды на 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
установка chronyyum 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 SELinuxyum install openstack-selinux
Установка SQL
устанавливаем пакеты mariadbyum 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
добавить пароль для
пользователя openstackrabbitmqctl add_user openstack пароль
выставляем полные права для пользователя openstackrabbitmqctl 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
установка пакетов для keystoneyum install openstack-keystone httpd mod_wsgi
редактируем в файле конфигурации /etc/keystone/keystone.conf следующие
строки[database]
connection = mysql+pymysql://keystone:пароль@controller/keystone
[token]
provider = fernet
Запуск заполнения базы keystonesu -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.confServerName controller
создаем ярлык
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
добавляем httpd в автозагрузку и запускаем apachesystemctl 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
создадим домен в openstackopenstack domain create --description "An Example Domain" example
создадим проект service и demoopenstack 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
создадим роль useropenstack role create user
добавим пользователю demo роль user в проекте demoopenstack 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
Файлы сценариев хранят пароли пользователя, поэтому должны хранится в
недоступном месте, например в домашнем каталоге пользователя rootcd ~
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-openrccd ~
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 в openstackopenstack user create --domain default --password-prompt glance
Добавим роль admin пользователю glance и проекту serviceopenstack role add --project service --user glance admin
создадим сервис glanceopenstack 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
установим пакет glanceyum install openstack-glance
отредактируем конфигурационный файл APInano /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
Запуск заполнения базы glancesu -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 в openstackopenstack user create --domain default --password-prompt nova
Добавим роль adminopenstack role add --project service --user nova admin
создадим сервис novaopenstack 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 в openstackopenstack user create --domain default --password-prompt placement
Добавим роль admin пользователю placementopenstack role add --project service --user placement admin
создадим сервис placement openstack service create --name placement --description "Placement API" placement
Создадим конечные точки API для сервиса placementopenstack 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 в openstackopenstack user create --domain default --password-prompt neutron
Добавим роль adminopenstack role add --project service --user neutron admin
создадим сервис neutron openstack service create --name neutron \
--description "OpenStack Networking" network
Создадим конечные точки API службы neutronopenstack 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
рестарт службы novasystemctl 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 в openstackopenstack user create --domain default --password-prompt cinder
Добавим роль adminopenstack 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
Создадим конечные точки APIopenstack 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
отредактируем конфигурационный файл novanano /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne
перезапустим novasystemctl 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
установка chronyyum 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 SELinuxyum 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 для работы с neutronnano /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
Комментариев нет:
Отправить комментарий