創建數據庫
使用root賬戶登錄數據庫
sudo mysql
創建keystone數據庫
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_DBPASS為你自己的密碼
安裝配置組件
安裝組件
sudo apt install keystone apache2 libapache2-mod-wsgi
由于keystone組件要運行在apache http服務上,所以也要安裝apache http服務
修改/etc/keystone/keystone.conf文件
在[database]部分,配置數據庫訪問
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
替換KEYSTONE_DBPASS為自己的密碼;并且注釋或者刪除其他connection項
在[token]部分,配置token生成的方式
provider = fernet
導入認證服務的數據庫
sudo -s /bin/sh -c "keystone-manage db_sync" keystone
初始化 Fernet key
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
引導認證服務
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://controller:35357/v3/ \
--bootstrap-internal-url http://controller:35357/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne
替換ADMIN_PASS為自己的密碼
配置apache http服務
修改/etc/apache2/apache2.conf文件
ServerName controller
controller為控制節點主機名
完成安裝
重啟apache服務
sudo 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:35357/v3
export OS_IDENTITY_API_VERSION=3
替換ADMIN_PASS為你自己設置的密碼
創建域,項目,用戶和角色
keystone認證服務為每一個Openstack 服務都提供了身份認證的服務,而身份認證服務使用domains, projects (tenants), users, and roles的組合來實現。
創建service工程
openstack project create --domain default \
--description "Service Project" service
常規(非管理員)任務應使用非特權項目和用戶。創建demo項目
openstack project create --domain default \
--description "Demo Project" demo
創建demo用戶
openstack user create --domain default \
--password-prompt demo
創建user角色
openstack role create user
添加user角色到demo工程和用戶
openstack role add --project demo --user demo user
驗證
禁用臨時身份驗證令牌機制
編輯/etc/keystone/keystone-paste.ini文件,刪除admin_token_auth從[pipeline:public_api], [pipeline:admin_api],[pipeline:api_v3] 部分.
取消設置的臨時OS_AUTH_URL和OS_PASSWORD環境變量
unset OS_AUTH_URL OS_PASSWORD
用amdin用戶請求令牌
openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name admin --os-username admin token issue
用demo用戶請求令牌
openstack --os-auth-url http://controller:5000/v3 \
--os-project-domain-name Default --os-user-domain-name Default \
--os-project-name demo --os-username demo token issue
寫腳本
這些腳本可以包含有常用的openstack client選項,但是每一個腳本只支持唯一的選項值。簡而言之,使用這些腳本能夠讓我們不需要為每一條openstack client指令都添加這么多的認證選項。
創建并且編輯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:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
替換ADMIN_PASS為自己設置的密碼
創建并且編輯demo-openrc文件,加入以下內容
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
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為自己設置的密碼
使用腳本
使用腳本登錄
. admin-openrc
請求認證令牌
openstack token issue

image