OpenStack Ussuri マニュアルインストールその2―Keystone 編
Controller
- Keystone は認証サービス
- OpenStack のすべてのサービスは Keystone に問い合わせて認証情報をもらってから実行される
前提条件
OpenStack Docs: Install and configure - Prerequisites
- Keystone をインストールする前にデータベースを作成する必要がある
root user
mysql
# 以下は`MariaDB [(none)]>`のプロンプトに入力する
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';
-
Caution
KEYSTONE_DBPASS
は適切なパスワードに書き換える keystone
データベースの作成とアクセス権限の付与
Keystone インストール
OpenStack Docs: Install and configure - Install and configure components
パッケージインストール
root user
apt install keystone
/etc/keystone/keystone.conf
編集# ... [database] # 他のオプションはすべて削除またはコメントアウトする # `KEYSTONE_DBPASS`は適切なパスワードに書き換える connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone [token] # ... # Fernetトークンプロバイダ設定 provider = fernet # ...
-
Caution
KEYSTONE_DBPASS
は適切なパスワードに書き換える
-
Caution
Keystone データベース同期
root user
su -s /bin/sh -c "keystone-manage db_sync" keystone
Fernet 鍵のリポジトリ初期化
root user
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
Keystone サービス一括作成
root user
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
-
Caution
ADMIN_PASS
は適切なパスワードに書き換える
Apache HTTP サーバー設定
OpenStack Docs: Install and configure - Configure the Apache HTTP server
/etc/apache2/apache2.conf
編集# ... ServerName controller
- コントローラノードを参照するように設定
SSL
- 必要あれば設定する
サービス再起動
OpenStack Docs: Install and configure - Finalize the installation
root user
systemctl restart apache2
管理アカウント用の環境変数
Environment Variable Value OS_USERNAME admin OS_PASSWORD ADMIN_PASS OS_PROJECT_NAME admin OS_USER_DOMAIN_NAME Default OS_PROJECT_DOMAIN_NAME Default OS_AUTH_URL http://controller:5000/v3 OS_IDENTITY_API_VERSION 3 -
Caution
ADMIN_PASS
は適切なパスワードに書き換える keystone-manage bootstrap ...
のコマンドで管理アカウントが作成されている
-
Caution
ドメイン、プロジェクト、ユーザ、役割の作成
OpenStack Docs: Create a domain, projects, users, and roles
- 認証はドメイン、プロジェクト、ユーザ、役割の組み合わせを使用しておこなわれる
環境変数をセットする
any user
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
-
Caution
ADMIN_PASS
は適切なパスワードに書き換える - これらの環境変数をセットした状態で
openstack
コマンドを叩くことで Keystone でいろいろな操作が可能となる
-
Caution
ドメイン作成
any user
openstack domain create --description "An Example Domain" example
+-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | An Example Domain | | enabled | True | | id | 2f4f80574fd84fe6ba9067228ae0a50c | | name | example | | tags | [] | +-------------+----------------------------------+
example
ドメインを作成しているkeystone-manage bootstrap ...
のコマンドでDefault
ドメインは作成されているが、新しいドメインを作成する手順の例として作成してみている別に作成しなくてもいいです
プロジェクト作成
any user
openstack project create --domain default --description "Service Project" service
+-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Service Project | | domain_id | default | | enabled | True | | id | 24ac7f19cd944f4cba1d77469b2a73ed | | is_domain | False | | name | service | | parent_id | default | | tags | [] | +-------------+----------------------------------+
service
プロジェクトを作成している- 公式インストールガイドではこの
service
プロジェクトに各種環境のユーザ (glance
,placement
, …) を追加していくことになるので、絶対に作成すること
管理者権限のないプロジェクト、ユーザ作成
myproject
プロジェクト作成any user
openstack project create --domain default --description "Demo Project" myproject
+-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Demo Project | | domain_id | default | | enabled | True | | id | 231ad6e7ebba47d6a1e57e1cc07ae446 | | is_domain | False | | name | myproject | | parent_id | default | | tags | [] | +-------------+----------------------------------+
myuser
ユーザ作成any user
openstack user create --domain default --password-prompt myuser # 対話形式のパスワードプロンプトがでる User Password: Repeat User Password:
+---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | aeda23aa78f44e859900e22c24817832 | | name | myuser | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+
myrole
の役割作成any user
openstack role create myrole
+-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | None | | id | 997ce8d05fc143ac97d83fdfb5998552 | | name | myrole | +-----------+----------------------------------+
myproject
プロジェクト、myuser
ユーザにmyrole
の役割を割り当てるany user
openstack role add --project myproject --user myuser myrole
動作確認
OpenStack Docs: Verify operation
一旦、環境変数
OS_AUTH_URL
、OS_PASSWORD
を消すany user
unset OS_AUTH_URL OS_PASSWORD
Default
ドメインのadmin
プロジェクト、admin
ユーザとして認証トークンをリクエストするany user
openstack \ --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default \ --os-user-domain-name Default \ --os-project-name admin \ --os-username admin \ token issue # 対話形式のパスワードプロンプトがでる Password:
+------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+
admin
ユーザのパスワードを入力するopenstack project show admin
やopenstack user show admin
ででてくるproject_id
、user_id
と一致している
Default
ドメインのmyproject
プロジェクト、myuser
ユーザとして認証トークンをリクエストするany user
openstack \ --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default \ --os-user-domain-name Default \ --os-project-name myproject \ --os-username myuser \ token issue # 対話形式のパスワードプロンプトがでる Password:
+------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:15:39.014479Z | | id | gAAAAABWvi9bsh7vkiby5BpCCnc-JkbGhm9wH3fabS_cY7uabOubesi-Me6IGWW | | | yQqNegDDZ5jw7grI26vvgy1J5nCVwZ_zFRqPiz_qhbq29mgbQLglbkq6FQvzBRQ | | | JcOzq3uwhzNxszJWmzGC7rJE_H0A_a3UFhqv8M4zMRYSbS2YF0MyFmp_U | | project_id | ed0b60bf607743088218b0a533d5943f | | user_id | 58126687cbcc4888bfa9ab73a2256f27 | +------------+-----------------------------------------------------------------+
myuser
ユーザのパスワードを入力するopenstack project show myproject
やopenstack user show myuser
ででてくるproject_id
、user_id
と一致している
OpenStack クライアント環境スクリプトを作成する
OpenStack Docs: Create OpenStack client environment scripts
- 環境変数エクスポートをまとめたスクリプトを作っておくと非常に便利
スクリプト作成
admin
ユーザ用の環境スクリプトadmin-openrc
を作成するexport OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
ADMIN_PASS
はadmin
ユーザのパスワードに書き換える
myuser
ユーザ用の環境スクリプトdemo-openrc
を作成するexport OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=DEMO_PASS export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
DEMO_PASS
はmyuser
ユーザのパスワードに書き換える
スクリプトの使用
環境スクリプトの読み込み
any user
. admin-openrc
source admin-openrc
と同じ意味
認証トークンをリクエストする
any user
openstack token issue
+------------+-----------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------+ | expires | 2016-02-12T20:14:07.056119Z | | id | gAAAAABWvi7_B8kKQD9wdXac8MoZiQldmjEO643d-e_j-XXq9AmIegIbA7UHGPv | | | atnN21qtOMjCFWX7BReJEQnVOAj3nclRQgAYRsfSU_MrsuWb4EDtnjU7HEpoBb4 | | | o6ozsA_NmFWEpLeKy0uNn_WeKbAhYygrsmQGA49dclHVnz-OMVLiyM9ws | | project_id | 343d245e850143a096806dfaefa9afdc | | user_id | ac3377633149401296f6c0d92d79dc16 | +------------+-----------------------------------------------------------------+
admin-openrc
を読み込んだのでDefault
ドメインのadmin
プロジェクト、admin
ユーザの認証トークンが出力される- パスワードなども含めて
admin-openrc
にかかれているので余計なオプションや対話形式のパスワード入力が不要になる
おわり
以上で Keystone 編終了です
お疲れ様でした
関連記事一覧
- OpenStack Ussuriをマニュアルインストールしてみたメモ
- OpenStack Ussuriマニュアルインストールその1―環境構築編
- OpenStack Ussuriマニュアルインストールその2―Keystone編(当記事)
- OpenStack Ussuriマニュアルインストールその3―Glance編
- OpenStack Ussuriマニュアルインストールその4―Placement編
- OpenStack Ussuriマニュアルインストールその5―Nova編
- OpenStack Ussuriマニュアルインストールその6―Neutron編
- OpenStack Ussuriマニュアルインストールその7―Horizon編
- OpenStack Ussuriマニュアルインストールその8―Cinder編
- OpenStack Ussuriマニュアルインストールその9―起動編
- OpenStack Ussuri 追加インストールその1―Octavia編
- OpenStack Victoriaをマニュアルインストールしてみたメモ
- OpenStack Tips
- Issues