このセクションでは、コントローラーノードに OpenStack Identity サービス (コード名 keystone) をインストールして設定する方法を説明します。スケーラビリティーを重視し、この設定では Fernet トークンを使用し、 Apache HTTP サーバーを使ってリクエストを処理します。
OpenStack Identity サービスを設定する前に、データベースと管理トークンを作成する必要があります。
以下の作業を実行して、データベースを作成します。
データベースクライアントを使用して、データベースサーバーに root
ユーザーとして接続します。
$ mysql -u root -p
keystone
データベースを作成します。
mysql> CREATE DATABASE keystone;
keystone
データベースに適切なアクセス権を付与します。
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
KEYSTONE_DBPASS
を適切なパスワードに置き換えます。
データベースクライアントを終了します。
注釈
設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...
) は、保持すべきデフォルトの設定オプションを意味します。
注釈
このガイドは、Apache HTTP server の mod_wsgi
を使用して、5000 番と 35357 番のポートで Identity サービスのリクエストを処理します。デフォルトでは、今も keystone サービスがこれらのポートをリッスンします。そのため、このガイドでは手動で keystone サービスを無効化します。
以下のコマンドを実行して、パッケージをインストールします。
# zypper install openstack-keystone apache2-mod_wsgi
/etc/keystone/keystone.conf
ファイルを編集し、以下の作業をすべて行います。
[database]
セクションで、データベースのアクセス方法を設定します。
[database]
...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
KEYSTONE_DBPASS
をデータベース用に選択したパスワードで置き換えます。
注釈
[database]
セクションにある他の connection
オプションは、コメントアウトまたは削除します。
[token]
セクションで Fernet トークンプロバイダーを設定します。
[token]
...
provider = fernet
Identity サービスデータベースを展開します。
# 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
Identity サービスを初期設定を行います。
# keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:35357/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
ADMIN_PASS
は管理ユーザーの適切なパスワードに置き換えます。
/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
管理アカウントの設定
$ 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
インストールと設定 セクションで実行した keystone-manage bootstrap
コマンドに使用したパスワードで ADMIN_PASS
を置き換えます。
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.