天天看點

Openstack(二):keystone認證服務

首先說明安裝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      
Openstack(二):keystone認證服務

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      

#輸入這條指令不用輸入密碼即可顯示結果,則表示成功

Openstack(二):keystone認證服務

13、已經可以做使用者認證後就不需要手動指定token來管理了,檔案中的token已經用不到了,删除

vi /etc/keystone/keystone.conf   

Openstack(二):keystone認證服務

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      
Openstack(二):keystone認證服務