このセクションでは、コントローラーノードに OpenStack Identity サービス (コード名 keystone) をインストールして設定する方法を説明します。この設定では、パフォーマンスを重視し、Apache HTTP サーバーを使ってリクエストを処理し、SQL データベースの代わりに Memcached を使ってトークンを保存するようにします。
OpenStack Identity サービスを設定する前に、データベースと管理トークンを作成する必要があります。
以下の作業を実行して、データベースを作成します。
データベースクライアントを使用して、データベースサーバーに root ユーザーとして接続します。
$ mysql -u root -p
keystone データベースを作成します。
CREATE DATABASE keystone;
keystone データベースに適切なアクセス権を付与します。
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
KEYSTONE_DBPASS を適切なパスワードに置き換えます。
データベースクライアントを終了します。
初期設定中に管理トークンとして使用するランダム値を生成します。
$ openssl rand -hex 10
注釈
設定ファイルのデフォルトは、ディストリビューションにより異なります。これらの既存のセクションとオプションを編集するのではなく、追加する必要があるかもしれません。また、設定のスニペットにある 省略 (...) は、保持すべきデフォルトの設定オプションを意味します。
注釈
Kilo リリースと Liberty リリースでは、keystone プロジェクトは eventlet を非推奨扱いとしています。代わりに WSGI 拡張に対応した専用 Web サーバーの使用を推奨しています。このガイドでは、Apache HTTP server の mod_wsgi を使用して、5000 番ポートと 35357 番ポートで Identity サービスのリクエストを処理します。デフォルトでは、keystone サービスは、まだ 5000 番と 35357 番をリッスンしています。そのため、このガイドでは、keystone サービスを無効化します。keystone プロジェクトは、Mitaka リリースで eventlet のサポートを削除する予定です。
keystone サービスがインストール後に自動実行されないように無効化します。
# echo "manual" > /etc/init/keystone.override
以下のコマンドを実行して、パッケージをインストールします。
# apt-get install keystone apache2 libapache2-mod-wsgi \
memcached python-memcache
/etc/keystone/keystone.conf ファイルを編集し、以下の作業をすべて行います。
[DEFAULT] セクションに初期管理トークンの値を定義します。
[DEFAULT]
...
admin_token = ADMIN_TOKEN
ADMIN_TOKEN を前の手順で生成したランダム値で置き換えます。
[database] セクションで、データベースのアクセス方法を設定します。
[database]
...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
KEYSTONE_DBPASS をデータベース用に選択したパスワードで置き換えます。
[memcache] セクションで Memcached サービスを設定します。
[memcache]
...
servers = localhost:11211
[token] セクションで UUID トークンプロバイダーと memcached ドライバーを設定します。
[token]
...
provider = uuid
driver = memcache
[revoke] セクションで SQL revocation ドライバーを設定します。
[revoke]
...
driver = sql
(オプション) トラブルシューティングしやすくするために、冗長ロギングを [DEFAULT] セクションで有効にします。
[DEFAULT]
...
verbose = True
Identity サービスデータベースを展開します。
# su -s /bin/sh -c "keystone-manage db_sync" keystone
/etc/apache2/apache2.conf ファイルを編集し、ServerName オプションがコントローラーノードを参照するように設定します。
ServerName controller
/etc/apache2/sites-available/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
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</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
<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
</VirtualHost>
Identity サービスの virtual host 設定を有効にします。
# ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
Apache HTTP サーバーを再起動します。
# service apache2 restart
デフォルトでは、Ubuntu パッケージは SQLite データベースを作成します。
今回の設定では SQL データベースサーバーを使用するため、SQLite データベースファイルを削除できます。
# rm -f /var/lib/keystone/keystone.db
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.