Этот раздел описывает как установить и настроить сервис идентификации OpenStack, известный как keystone, на управляющем узле. Для масштабируемости, данная конфигурация разворачивает токены Fernet и Apache HTTP сервер для обработки запросов.
Before you install and configure the Identity service, you must create a database.
Примечание
Before you begin, ensure you have the most recent version of
python-pyasn1
installed.
Используйте клиент баз данных для подключения к серверу БД под пользователем root
:
$ mysql -u root -p
Создайте базу данных keystone
:
MariaDB [(none)]> CREATE DATABASE keystone;
Предоставьте необходимый доступ к базе данных keystone
:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
Замените KEYSTONE_DBPASS
подходящим паролем.
Закройте клиент баз данных.
Примечание
Набор конфигурационных файлов по умолчанию может варьироваться между дистрибуциями. Вам может потребоваться добавить данные разделы и опции вместо того, чтобы изменять существующие. Также, эллипсис (...
) в конфигурационных сниппетах означают потенциальные опции конфигурации, которые вам необходимо сохранить без изменений.
Примечание
В этом руководстве используется HTTP сервер Apache с установленным ``mod_wsgi``для обслуживания запросов к сервису идентификации по портам 5000 и 35357. По умолчанию сервис keystone слушает эти порты. Тем не менее, в этом руководстве сервис keystone выключается.
Примечание
Starting with the Newton release, SUSE OpenStack packages are shipping
with the upstream default configuration files. For example
/etc/keystone/keystone.conf
, with customizations in
/etc/keystone/keystone.conf.d/010-keystone.conf
. While the
following instructions modify the default configuration file, adding a
new file in /etc/keystone/keystone.conf.d
achieves the same
result.
Исполните следующую команду для установки пакетов:
# zypper install openstack-keystone apache2-mod_wsgi
Отредактируйте файл /etc/keystone/keystone.conf
и выполните следующие действия:
Сконфигурируйте доступ к базе данных в разделе [database]
:
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
Замените KEYSTONE_DBPASS
на пароль, который вы выбрали для базы данных.
Примечание
Закомментируйте или удалите любые другие опции connection
в разделе [database]
.
В секции [token]
настройте службу токенов Fernet:
[token]
# ...
provider = fernet
Заполните базу данных службы Идентификации:
# su -s /bin/sh -c "keystone-manage db_sync" keystone
Инициализируйте репозитории Fernet:
# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
Bootstrap the Identity service:
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
Replace ADMIN_PASS
with a suitable password for an administrative user.
Отредактируйте файл /etc/sysconfig/apache2
и настройте опцию APACHE_SERVERNAME
для ссылки на узел контроллера:
APACHE_SERVERNAME="controller"
Создайте файл /etc/apache2/conf.d/wsgi-keystone.conf
со следующим контентом:
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
Рекурсивно измените владельцев папки /etc/keystone
:
# chown -R keystone:keystone /etc/keystone
Запустите Apache HTTP сервис и настройте его автоматический запуск при загрузке системы:
# systemctl enable apache2.service
# systemctl start apache2.service
Configure the administrative account
$ export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ 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
Replace ADMIN_PASS
with the password used in the
keystone-manage bootstrap
command in keystone-install-configure.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.