本節(jié)描述如何在控制器節(jié)點(diǎn)上安裝和配置 OpenStack 身份服務(wù)(代號(hào)為 keystone)。出于可伸縮性的目的,該配置部署了 Fernet 令牌和 Apache HTTP 服務(wù)器來處理請(qǐng)求。
先決條件
在安裝和配置身份服務(wù)之前,必須創(chuàng)建一個(gè)數(shù)據(jù)庫。
1、使用數(shù)據(jù)庫客戶端作為 root 用戶連接到數(shù)據(jù)庫服務(wù)器:
# mysql
2、創(chuàng)建 keystone 數(shù)據(jù)庫:
MariaDB [(none)]> CREATE DATABASE keystone;
3、授予對(duì) keystone 數(shù)據(jù)庫的適當(dāng)訪問權(quán)限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
用適當(dāng)?shù)拿艽a替換 KEYSTONE_DBPASS。
4、退出數(shù)據(jù)庫客戶端。
安裝和配置組件
默認(rèn)配置文件因發(fā)行版而異。您可能需要添加這些部分和選項(xiàng),而不是修改現(xiàn)有的部分和選項(xiàng)。同時(shí),配置片段中的省略號(hào) (
…) 表示您應(yīng)該保留的潛在的默認(rèn)配置選項(xiàng)。
該指南使用 Apache HTTP 服務(wù)器與 mod_wsgi 來服務(wù)端口 5000 和 35357 的身份服務(wù)請(qǐng)求。默認(rèn)情況下,keystone 服務(wù)仍在監(jiān)聽這些端口。該包處理您所有的 Apache 配置(包括在 Apache 中激活 mod_wsgi apache2 模塊和 keystone 配置)。
1、運(yùn)行以下命令安裝包:
apt install keystone
2、編輯 /etc/keystone/keystone.conf 文件并完成以下操作:
在 [database] 部分,配置數(shù)據(jù)庫訪問:
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
用您為數(shù)據(jù)庫選擇的密碼替換 KEYSTONE_DBPASS。
注釋掉或刪除
[database]部分中的任何其他connection選項(xiàng)。
在 [token] 部分中,配置 Fernet 令牌提供者:
[token]
# ...
provider = fernet
3、填寫身份服務(wù)數(shù)據(jù)庫:
su -s /bin/sh -c "keystone-manage db_sync" keystone
4、初始化 Fernet 密鑰存儲(chǔ)庫:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
5、引導(dǎo)認(rèn)證服務(wù):
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:5000/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
將 ADMIN_PASS 替換為管理用戶的適當(dāng)密碼。
配置 Apache HTTP 服務(wù)器
1、編輯 /etc/apache2/apache2.conf 文件并配置 ServerName 選項(xiàng)以引用控制器節(jié)點(diǎn):
ServerName controller
完成安裝
1、重新啟動(dòng) Apache 服務(wù)并刪除默認(rèn)的 SQLite 數(shù)據(jù)庫:
service apache2 restart
rm -f /var/lib/keystone/keystone.db
2、配置管理賬戶
$ 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 - install - configure 中使用 keystone - manage bootstrap 命令中的密碼替換 ADMIN_PASS。