Руководство по установке и запуску OpenStack в ALT Linux и производных

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

e-mail: pauli@altlinux.org


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

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

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

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

Для демонстрации удобно использовать виртуальную машину VirtualBox, образ дистрибутива - altlinux-7.0.5-centaurus-i586. Имя виртуальной машины controller. При установке системы (шаг 5) укажем профиль Минимальная установка - Systemd Виртуальные сетевые интерфейсы конфигурируются следующим образом:

  • Адаптер 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 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 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