
KeystoneはOpenStackIDサービスであり、ユーザーとそのパーミッションを追跡する機能を提供します。 APIエンドポイントを介したカタログ機能。実際にはユーザー管理機能を提供するのではなく、現在の認証サービスまたは市場で入手可能なサードパーティのIDサービスを選択するためのプラグインインターフェースを提供します。
先に進む前に、前の記事のインフラストラクチャ設計を確認してください。
このガイドでは、コードネームkeystoneであるOpenStackIdentityServiceをコントローラーノードにインストールして構成する方法を説明します。
前提条件:
OpenStack Identity Serviceをインストールする前に、データベースと管理トークンを作成する必要があります。
# mysql -u root -p
キーストーンデータベースを作成します。
CREATE DATABASE keystone;
キーストーンデータベースへの適切なアクセスを設定します。
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'PASSWD'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'PASSWD';
PASSWDを適切なパスワードに置き換えます。
ランダムな値を生成します。これは、初期構成の管理トークンとして使用できます。
# openssl rand -hex 10
KeyStoneのインストールと構成:
インストール後にkeystoneサービスが自動的に開始されないようにします。
# echo "manual" > /etc/init/keystone.override
* Kiloでは、Apache HTTPサーバーを使用して、このバージョンのOpenStackで減価償却されているEventletの代わりに、mod_wsgiを使用してポート5000および35357でキーストーンリクエストを処理します。
キーストーンをインストールします。
# apt-get install keystone python-openstackclient apache2 libapache2-mod-wsgi memcached python-memcache
キーストーン構成ファイルを編集します。
# nano /etc/keystone/keystone.conf
上記のファイルの適切なセクションに次のエントリを配置します。
[DEFAULT] ... admin_token = 43405b090eda983ddde2 ## Replace 43405b090eda983ddde2 with a random that you generated earlier verbose = True [database] ... connection = mysql://keystone:PASSWD@controller/keystone ## Replace PASSWD with your KeyStone DB password [memcache] ... servers = localhost:11211 [token] ... provider = keystone.token.providers.uuid.Provider driver = keystone.token.persistence.backends.memcache.Token [revoke] ... driver = keystone.contrib.revoke.backends.sql.Revoke
次のコマンドを実行して、IDサービスデータベースにデータを入力します。
# keystone-manage db_sync
Apache HTTPサーバーの構成:
/etc/apache2/apache2.confを編集し、ServerNameオプションを構成してコントローラーノードを参照します。
ServerName controller
以下のファイルを作成します。
# nano /etc/apache2/sites-enabled/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 <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/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 <IfVersion >= 2.4> ErrorLogFormat "%{cu}t %M" </IfVersion> LogLevel info ErrorLog /var/log/apache2/keystone-error.log CustomLog /var/log/apache2/keystone-access.log combined </VirtualHost>
WSGIコンポーネントのディレクトリを作成します。
# mkdir -p /var/www/cgi-bin/keystone
次のコマンドを実行して、アップストリームリポジトリからWSGIコンポーネントをダウンロードします。
# 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/*
Apacheサービスを再起動します。
# service apache2 restart
MySQLデータベースを使用しているため、SQLiteデータベースを削除します。
# rm -f /var/lib/keystone/keystone.db
次は、サービスエンティティとAPIエンドポイントを作成します。