Keystoneのインストールになります。

まずWikipediaで検索すると、

とあります。

参考にするサイトは下記の3つになります。

https://aton-kish.github.io/blog/post/2020/09/13/openstack-ussuri-keystone/

https://www.server-world.info/query?os=Ubuntu_20.04&p=openstack_victoria&f=3

OpenStack公式サイト

https://docs.openstack.org/keystone/victoria/install/keystone-install-ubuntu.html

上記のOpenStackの公式サイトから画像を利用させて頂いています。

OpenStackのドキュメントのライセンス条項 CC-BY

openstack公式サイトから一部抜粋

Wikipediaに乗っているライセンス条項の組み合わせ CC-BY

Creative Commons Attribution 3.0 License

https://creativecommons.org/licenses/by/3.0/deed.ja

ここからKeystoneインストール

OpenStackの公式サイトを見ると前提条件があります。

openstack公式サイトから一部抜粋

データベースを作成しないといけないので下記のコマンドをルートユーザで実行します。

KEYSTONE_DBPASSは書き換えてください。

mysql
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';

前提条件が終わりましたので、Keystoneのインストールになるのですが、注意事項が書かれています。

openstack公式サイトから一部抜粋

デフォルトの設定はディストリビューションごとに異なることが書かれています。

5000番ポートでidentityサービスのリクエストが処理されることが書かれています。

下記のパッケージをインストールします。

keystone: OpenStackのKeystoneパッケージ

python3-openstackclient: OpenStackのクライアントパッケージ

apache2: Apache HTTPサーバのパッケージ

libapache2-mod-wsgi-py3: Webサーバとアプリケーションを接続するためのインターフェースのパッケージ

apt -y install keystone python3-openstackclient apache2 libapache2-mod-wsgi-py3

ちなみに公式では、Keystoneのみのインストールになっています。

openstack公式サイトから一部抜粋

つぎは/etc/keystone/keystone.confの編集になります。viで編集します。

cd /etc/keystone
cp -ip keystone.conf keystone.conf_yyyymmdd
vi keystone.conf

公式のとおり、データベースに登録したKEYSTONE_DBPASSに書き換えてください。

tokenはfernetです。

openstack公式サイトから一部抜粋

fernetプロバイダーについて調べてみました。

openstack公式サイトから一部抜粋
openstack公式サイトから一部抜粋

RedHatの説明が一番わかりやすいです。

RedHatのfernetトークンの説明のリンク

https://access.redhat.com/documentation/ja-jp/red_hat_openstack_platform/16.1/html/security_and_hardening_guide/tokens_identity-and-access-management

次はKeystoneのデータベース同期になります。

openstack公式サイトから一部抜粋
su -s /bin/sh -c "keystone-manage db_sync" keystone

keyの初期化をします。

openstack公式サイトから一部抜粋
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

Identityサービスエンドポイントの作成

openstack公式サイトから一部抜粋
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://controller:5000/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

ADMIN_PASSは、任意のパスワードに書き換える。

apache2.confをviで編集する。

openstack公式サイトから一部抜粋

最後の設定になります。

openstack公式サイトから一部抜粋

apache2の再起動

service apache2 restart

環境変数を設定する。

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:5000/v3
export OS_IDENTITY_API_VERSION=3

ADMIN_PASSは、任意のパスワードに書き換える。

環境変数をエクスポートするスクリプトを作成する。

vi ~/admin-openrc

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:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

admin-openrcスクリプトを実行して試しに認証トークンをリクエストしてみる。

source admin-openrc

認証トークンのリクエストのコマンド

openstack token issue

必須のサービスプロジェクトを作成する。リンク参照

https://docs.openstack.org/keystone/pike/install/keystone-users-obs.html

openstack project create --domain default --description "Service Project" service

サービスプロジェクトが作成されたか確認する

openstack project list

以上です。