首先說明安裝Opnstack服務安裝的一些基本套路:
1、資料庫建立
2、安裝對應服務的軟體包并修改配置檔案
3、建立相應的服務并注冊api
一、資料庫
官方文檔https://docs.openstack.org/keystone/stein/install/keystone-install-rdo.html
1、 建立資料庫和keystone使用者
mysql -uroot -p123456
MariaDB [(none)]> CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone123';
2、在控制端測試能否連接配接
mysql -ukeystone -pkeystone123 -hopenstack-mysql.heng.net
二、安裝對應服務的軟體包并修改配置檔案
1、在控制端操作安裝keystone軟體包
yum install openstack-keystone httpd mod_wsgi
# mod_wsgi用于httpd調用python服務
2、修改keystone配置檔案
vi /etc/keystone/keystone.conf
[database] 搜尋資料庫部分
connection = mysql+pymysql://keystone:[email protected]/keystone
[token]
# ...
provider = fernet 去掉注釋
3、生成keystone資料庫的表
su -s /bin/sh -c "keystone-manage db_sync" keystone
4、生成fernet驗證檔案
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
5、編輯apache配置檔案
vi /etc/httpd/conf/httpd.conf
ServerName 192.168.12.17:80
6、建立/usr/share/keystone/wsgi-keystone.conf 的軟連接配接,這個是apache調用python的配置檔案,監聽了5000端口
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
systemctl start httpd.service
systemctl enable httpd.service
三、建立相應的服務并注冊api
1、Openstack由于現在沒有賬号和密碼,keystone無法提供認證服務,通過認證服務就是為了擷取一個token,是以可以直接先定義一個token,繞過認證
openssl rand -hex 10
3fdcd4af381781fda580
vi /etc/keystone/keystone.conf
admin_token = 3fdcd4af381781fda580
修改之後再次同步資料庫,寫到資料庫
su -s /bin/sh -c "keystone-manage db_sync" keystone
2、檢視日志是否有報錯
keystone 日志檔案:
ll /var/log/keystone/keystone.log
3、定義環境變量
export OS_TOKEN=3fdcd4af381781fda580
export OS_URL=http://192.168.12.17:5000/v3
export OS_IDENTITY_API_VERSION=3
echo $OS_TOKEN 确認是否設定成功
4、建立預設域
openstack domain create --description "Default Domain" default

5、建立一個admin項目
openstack project create --domain default --description "Admin Project" admin
6、建立 admin 使用者并設定密碼為 admin:
[[email protected] ~]#openstack user create --domain default --password-prompt admin
User Password:
Repeat User Password:
7、建立admin角色并給amdin使用者授權
openstack role create admin
openstack role add --project admin --user admin admin
8、建立demo項目和使用者
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password-prompt demo
User Password:
Repeat User Password:
openstack role create user
openstack role add --project demo --user demo user
9、建立 service 項目
openstack project create --domain default --description "Service Project" service
10、建立認證服務
openstack service create --name keystone --description "OpenStack Identity" identity
[[email protected] ~]#openstack service list #檢視目前的服務
11、注冊api到認證服務
openstack endpoint create --region RegionOne identity admin http://openstack-vip.heng.net:5000/v3
openstack endpoint create --region RegionOne identity public http://openstack-vip.heng.net:5000/v3
openstack endpoint create --region RegionOne identity internal http://openstack-vip.heng.net:5000/v3
12、測試 keystone 是否可以做使用者驗證打開一個新終端
[[email protected] ~]#export OS_IDENTITY_API_VERSION=3
[[email protected] ~]#openstack --os-auth-url http://openstack-vip.heng.net:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue
#輸入這條指令不用輸入密碼即可顯示結果,則表示成功
13、已經可以做使用者認證後就不需要手動指定token來管理了,檔案中的token已經用不到了,删除
vi /etc/keystone/keystone.conf
14、定義二個環境變量的腳本,通過這兩個腳本定義變量,調用對應api
vi scripts/admin-stein.sh
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
export OS_AUTH_URL=http://openstack-vip.heng.net:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
vi scripts/demo-stein.sh
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
export OS_AUTH_URL=http://openstack-vip.heng.net:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
15、腳本使用,出現這個結果表示keystone服務安裝成功
source demo-stein.sh
openstack token issue