Руководство по установке и запуску OpenStack в ALT Linux и производных: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
 
(не показаны 42 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Stub}}
{{Stub}}
{{Тимовец|pauli}}
{{Тимовец|pauli}}
Более подробная статья по установке OpenStack на P8:
[[Руководство_по_установке_и_запуску_OpenStack_в_ALT_Linux_в_p8]]
Статья по мотивам материала [http://docs.tionixlabs.ru/tionix-openstack-install/i2p/install.html OpenStack. Инструкция по применению].
Статья по мотивам материала [http://docs.tionixlabs.ru/tionix-openstack-install/i2p/install.html OpenStack. Инструкция по применению].
В отличие от первоисточника, охватывающего множество дистрибутивов (и это правильно!) здесь мы постараемся дать пошаговое руководство по установке и первоначальной настройке компонентов OpenStack конкретно для семейства ALT Linux и производных. Предполагается, что все примеры команд, приведенные ниже, проверены и должны работать.
В отличие от первоисточника, охватывающего множество дистрибутивов (что правильно), здесь мы постараемся дать пошаговое руководство по установке и первоначальной настройке компонентов OpenStack конкретно для семейства ALT Linux и производных. Предполагается, что все примеры команд, приведенные ниже, проверены и должны работать.
== Предварительные условия ==
== Предварительные условия ==
До начала требуется работоспособная базовая система на основе Sisyphus. Достаточно минимальных ресурсов:
До начала требуется работоспособная базовая система на основе p8. Контейнеру достаточно минимальных ресурсов:
* Процессорных ядер - одно;
* Процессорных ядер - одно;
* Оперативная память от 1 Гб;
* Оперативная память от 512 Мб;
* Свободное дисковое пространство 20 Гб.
* Диск 20 Гб.
Для демонстрации удобно использовать виртуальную машину VirtualBox. Виртуальные сетевые интерфейсы конфигурируются следующим образом:
Для демонстрации удобно использовать виртуальную машину VirtualBox, образ дистрибутива - [http://nightly.altlinux.org/p8/beta/ basealt-p8-server-openstack-*-x86_64]. Имя виртуальной машины controller.
Виртуальные сетевые интерфейсы конфигурируются следующим образом:
* Адаптер 1 тип подключения внутренняя сеть `intnet`
* Адаптер 1 тип подключения внутренняя сеть `intnet`
* Адаптер 2 тип подключения NAT, проброс портов хоста 2211 и 8011 - на 22 (ssh) и 80 (httpd) гостя соответственно.
* Адаптер 2 тип подключения NAT, проброс портов хоста 2211 на 22 (ssh) гостя.
По умолчанию при минимальной установке sshd установлен, но автоматически не запускается. Он нам понадобится, чтобы стало возможным пользоваться буфером обмена для команд.
# systemctl enable sshd
# systemctl start sshd
Дальнейшую настройку удобнее вести, подключившись к машине controller по ssh через 2211 порт хоста. /etc/hosts каждой из виртуальных машин, участвующих в тесте, для разрешения имён дополним параметрами:
# Управляющий узел
10.0.0.11 controller
# Сетевой узел
10.0.0.21 network
# Вычислительный узел
10.0.0.31 compute1
Подготовка к началу установки.
# apt-get update
# apt-get dist-upgrade
Установка СУБД
# apt-get install mariadb-server python-module-MySQLdb
Настройка СУБД. Файл конфигурации
# > /etc/my.cnf.d/mariadb_openstack.cnf
с параметрами
[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
max_allowed_packet = 32M
 
# systemctl start mysqld
# systemctl enable mysqld
# systemctl status mysqld
... Active: active (running) ...
Задаём пароль SQL root и настройки безопасности
# mysql_secure_installation
 
== Сервер сообщений ==
# apt-get install rabbitmq-server
# systemctl start rabbitmq
# systemctl enable rabbitmq
# systemctl status rabbitmq
... Active: active (running) ...
Пользователь openstack в брокере сообщений и его полномочия:
# rabbitmqctl add_user openstack RABBIT_PASS
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
== Cлужба идентификации Keystone ==
=== Создание базы данных ===
mysql -u root -p
> CREATE DATABASE keystone;
> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
=== Установка и настройка компонентов ===
# apt-get install openstack-keystone apache2-mod_wsgi python-module-keystoneclient python-module-openstackclient memcached python-module-memcached
Сохраняем умолчальный .conf для справки и создаём новый
# mv /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak
# touch /etc/keystone/keystone.conf
С параметрами
[DEFAULT]
admin_token = TOKEN_ID
[database]
connection = mysql://keystone:KEYSTONE_DBPASS@DB_ADDRESS/keystone
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.memcache.Token
[memcache]
servers = controller:11211
verbose = True
Где вместо TOKEN_ID подставить случайный ключ - например выдачу команды
openssl rand -hex 10
Чтобы получилось что-то вроде admin_token = edb0ef20598523698185, а DB_ADDRESS - controller или localhost. Теперь можно заполнить базу данных начальными таблицами для Keystone:
keystone-manage db_sync
 
=== Подготовка веб-сервера Apache2 для Keystone ===
Параметр ServerName controller в /etc/httpd2/conf/httpd2.conf, затем отдельный файл конфигурации
# echo ServerName controller >> /etc/httpd2/conf/httpd2.conf
# touch /etc/httpd2/conf/sites-available/wsgi-keystone.conf
с параметрами
Listen 5000
Listen 35357
<VirtualHost *:5000>
  WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
  WSGIProcessGroup keystone-public
  WSGIScriptAlias / /var/www/cgi-bin/keystone/main
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
  ErrorLog /var/log/httpd2/keystone-error.log
  CustomLog /var/log/httpd2/keystone-access.log combined
</VirtualHost>
<VirtualHost *:35357>
  WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
  WSGIProcessGroup keystone-admin
  WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
  WSGIApplicationGroup %{GLOBAL}
  WSGIPassAuthorization On
  ErrorLog /var/log/httpd2/keystone-error.log
  CustomLog /var/log/httpd2/keystone-access.log combined
</VirtualHost>
 
и символическую ссылку на wsgi-keystone.conf из /etc/httpd2/conf/sites-enabled
# ln -s /etc/httpd2/conf/sites-available/wsgi-keystone.conf /etc/httpd2/conf/sites-enabled
 
# mkdir -p /var/www/cgi-bin/keystone
# curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo \
| tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
# chown -R keystone:keystone /var/www/cgi-bin/keystone
# chmod 755 /var/www/cgi-bin/keystone/*
# systemctl enable memcached
# systemctl restart memcached
# a2dissite default
# systemctl enable httpd2
# systemctl restart httpd2
 
=== Добавление объектов в службу идентификации ===
export OS_TOKEN=TOKEN_ID
export OS_URL=http://controller:35357/v2.0


{{Category navigation|title=OpenStack|category=OpenStack|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=OpenStack|category=OpenStack|sortkey={{SUBPAGENAME}}}}

Текущая версия от 06:46, 24 мая 2017

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Mozilla.svg Этот участник состоит в ALT Linux Team под ником pauli.

e-mail: pauli@altlinux.org


Более подробная статья по установке OpenStack на P8: Руководство_по_установке_и_запуску_OpenStack_в_ALT_Linux_в_p8

Статья по мотивам материала OpenStack. Инструкция по применению. В отличие от первоисточника, охватывающего множество дистрибутивов (что правильно), здесь мы постараемся дать пошаговое руководство по установке и первоначальной настройке компонентов OpenStack конкретно для семейства ALT Linux и производных. Предполагается, что все примеры команд, приведенные ниже, проверены и должны работать.

Предварительные условия

До начала требуется работоспособная базовая система на основе p8. Контейнеру достаточно минимальных ресурсов:

  • Процессорных ядер - одно;
  • Оперативная память от 512 Мб;
  • Диск 20 Гб.

Для демонстрации удобно использовать виртуальную машину VirtualBox, образ дистрибутива - basealt-p8-server-openstack-*-x86_64. Имя виртуальной машины controller. Виртуальные сетевые интерфейсы конфигурируются следующим образом:

  • Адаптер 1 тип подключения внутренняя сеть `intnet`
  • Адаптер 2 тип подключения NAT, проброс портов хоста 2211 на 22 (ssh) гостя.

По умолчанию при минимальной установке sshd установлен, но автоматически не запускается. Он нам понадобится, чтобы стало возможным пользоваться буфером обмена для команд.

# systemctl enable sshd
# systemctl start sshd

Дальнейшую настройку удобнее вести, подключившись к машине controller по ssh через 2211 порт хоста. /etc/hosts каждой из виртуальных машин, участвующих в тесте, для разрешения имён дополним параметрами:

# Управляющий узел
10.0.0.11 controller
# Сетевой узел
10.0.0.21 network
# Вычислительный узел
10.0.0.31 compute1

Подготовка к началу установки.

# apt-get update
# apt-get dist-upgrade 

Установка СУБД

# apt-get install mariadb-server python-module-MySQLdb

Настройка СУБД. Файл конфигурации

# > /etc/my.cnf.d/mariadb_openstack.cnf

с параметрами

[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
max_allowed_packet = 32M
# systemctl start mysqld
# systemctl enable mysqld
# systemctl status mysqld

... Active: active (running) ... Задаём пароль SQL root и настройки безопасности

# mysql_secure_installation

Сервер сообщений

# apt-get install rabbitmq-server
# systemctl start rabbitmq
# systemctl enable rabbitmq
# systemctl status rabbitmq

... Active: active (running) ... Пользователь openstack в брокере сообщений и его полномочия:

# rabbitmqctl add_user openstack RABBIT_PASS
# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Cлужба идентификации Keystone

Создание базы данных

mysql -u root -p
> CREATE DATABASE keystone;
> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

Установка и настройка компонентов

# apt-get install openstack-keystone apache2-mod_wsgi python-module-keystoneclient python-module-openstackclient memcached python-module-memcached

Сохраняем умолчальный .conf для справки и создаём новый

# mv /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak
# touch /etc/keystone/keystone.conf

С параметрами

[DEFAULT]
admin_token = TOKEN_ID
[database]
connection = mysql://keystone:KEYSTONE_DBPASS@DB_ADDRESS/keystone
[token]
provider = keystone.token.providers.uuid.Provider
driver = keystone.token.persistence.backends.memcache.Token
[memcache]
servers = controller:11211
verbose = True

Где вместо TOKEN_ID подставить случайный ключ - например выдачу команды

openssl rand -hex 10

Чтобы получилось что-то вроде admin_token = edb0ef20598523698185, а DB_ADDRESS - controller или localhost. Теперь можно заполнить базу данных начальными таблицами для Keystone:

keystone-manage db_sync

Подготовка веб-сервера Apache2 для Keystone

Параметр ServerName controller в /etc/httpd2/conf/httpd2.conf, затем отдельный файл конфигурации

# echo ServerName controller >> /etc/httpd2/conf/httpd2.conf
# touch /etc/httpd2/conf/sites-available/wsgi-keystone.conf

с параметрами

Listen 5000
Listen 35357
<VirtualHost *:5000>
 WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone display-name=%{GROUP}
 WSGIProcessGroup keystone-public
 WSGIScriptAlias / /var/www/cgi-bin/keystone/main
 WSGIApplicationGroup %{GLOBAL}
 WSGIPassAuthorization On
 ErrorLog /var/log/httpd2/keystone-error.log
 CustomLog /var/log/httpd2/keystone-access.log combined
</VirtualHost>
<VirtualHost *:35357>
 WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone display-name=%{GROUP}
 WSGIProcessGroup keystone-admin
 WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
 WSGIApplicationGroup %{GLOBAL}
 WSGIPassAuthorization On
 ErrorLog /var/log/httpd2/keystone-error.log
 CustomLog /var/log/httpd2/keystone-access.log combined
</VirtualHost>

и символическую ссылку на wsgi-keystone.conf из /etc/httpd2/conf/sites-enabled

# ln -s /etc/httpd2/conf/sites-available/wsgi-keystone.conf /etc/httpd2/conf/sites-enabled
# mkdir -p /var/www/cgi-bin/keystone
# curl http://git.openstack.org/cgit/openstack/keystone/plain/httpd/keystone.py?h=stable/kilo \
| tee /var/www/cgi-bin/keystone/main /var/www/cgi-bin/keystone/admin
# chown -R keystone:keystone /var/www/cgi-bin/keystone
# chmod 755 /var/www/cgi-bin/keystone/*
# systemctl enable memcached
# systemctl restart memcached
# a2dissite default
# systemctl enable httpd2
# systemctl restart httpd2

Добавление объектов в службу идентификации

export OS_TOKEN=TOKEN_ID
export OS_URL=http://controller:35357/v2.0