OpenStack控制節點上搭建Q版keystone服務(step3)

keystone服務監聽兩個端口:5000和35357

一、安裝和配置

1.安裝keystone組件

yum install openstack-keystone httpd mod_wsgi -y

2.在mariadb數據庫中爲keytone組件創建一個數據庫,數據庫名爲keystone,併爲keystone組件創建賬號並授予對keystone數據庫的所有操作權限。

create database keystone;

grant all privileges on keytone.* to 'keystone'@'localhost' identified by 'keystone';

grant all privileges on keystone.* to 'keystone'@'%' identified by 'keystone';

flush privileges;

3.設置keystone組件的配置文件,讓keystone組件可以訪問mariadb的keystone數據庫

vim /etc/keystone/keystone.conf

在[database]下添加:
connection = mysql+pymysql://keystone:keystone@controller1/keystone

保存退出。

4.將keystone組件所需要的表導入到mariadb的keystone數據庫中。

su -s /bin/sh -c "keystone-manage db_sync" keystone

執行完後,可以看下keystone數據庫下有幾張表,我的有44張表。

5.配置keystone組件使用fernet令牌,具體可參閱:https://blog.csdn.net/wllabs/article/details/79064094

vim /etc/keystone/keystone.conf

在[token]下添加:

provider = fernet

保存退出。

初始化fernet令牌庫,爲keystone創建令牌:

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

6.初始化admin用戶(管理用戶)與密碼,3種API端點,服務實體、可用區等

keystone-manage bootstrap --bootstrap-password 123456 --bootstrap-admin-url http://controller1:35357/v3/ --bootstrap-internal-url http://controller1:5000/v3/ --bootstrap-public-url http://controller1:5000/v3/ --bootstrap-region-id RegionOne

備註:

未指定--bootstrap-username,會默認生成admin用戶,

未指定--bootstrap-project-name,會默認生成admin項目,

未指定--bootstrap-role-name,會默認生成admin角色,

未指定--bootstrap-service-name,會默認生成keystone服務實體。

另外,這條初始化命令,還默認創建了一個default域。

7.配置http服務

當沒有指定ServerName時,server會嘗試對IP地址進行反向查詢來判斷主機名。假設在ServerName中沒有指定port號,server會監聽全部port。爲了加強可靠性和可預測性,應該使用ServerName顯示的指定一個主機名和port號。

vim /etc/httpd/conf/httpd.conf

添加:

ServerName controller1:80

保存退出。

8.配置啓動http時,同時也啓動keystone

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

9.啓動http,並設置開機自啓。

systemctl enable httpd.service && systemctl start httpd.service

二、

10.配置admin環境客戶端腳本並啓動腳本

vim 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=123456                          #這是初始化keystone時,設置的admin密碼。
export OS_AUTH_URL=http://controller1:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

保存退出。

source admin-openrc

或者 . admin-openrc

11.雖然初始化keystone時,已經默認創建了域、項目、用戶、角色等,但並沒有很好的演示出如何去創建它們的,下面就來演示一下:

創建服務實體keystone(這個不要去執行,因爲在初始化時已經創建):

openstack service create --name keystone --description "OpenStack Identity" identity

創建API端點(這個不要去執行,因爲在初始化時已經創建):

openstack endpoint create --region RegionOne identity public http://controller1:5000/v3

openstack endpoint create --region RegionOne identity internal http://controller1:5000/v3

openstack endpoint create --region RegionOne identity admin http://controller1:35357/v3

創建default域:(這個不要去執行,因爲在初始化時已經創建)

openstack domain create --description "Default Domain" default

在default域中創建service項目:(這個可以執行,因爲初始化時只創建了admin項目)

openstack project create --domain default --description "Service Project" service

在default域中創建demo項目:(這個可以執行)

openstack project create --domain default --description "demo Project" demo

在default域中創建demo用戶:(這個可以執行,因爲初始化時只創建了admin用戶)

openstack user create --domain default --password-prompt demo    #demo用戶密碼會在命令回車執行時要求客官輸入的,我輸入的是demo

創建user角色:(這個可以執行,因爲初始化時只創建了admin角色)

openstack role create user

將user角色關聯到demo項目和demo用戶上:

openstack role add --project demo --user demo user

12.驗證創建的用戶

這一步和第10步是同樣的道理,都可以進行驗證。

使用admin用戶請求token身份令牌:

unset OS_AUTH_URL OS_PASSWORD   #首先要重置第10步引入的環境變量

openstack --os-auth-url http://controller1:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin --os-identity-api-version 3  token issue

使用demo用戶請求token身份令牌:

openstack --os-auth-url http://controller1:5000/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue

demo用戶也可以使用客戶端腳本:

vim 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
export OS_AUTH_URL=http://controller1:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

保存退出。

使用. demo-openrc或者source demo-openrc進行導入這些變量。

執行openstack token issue獲取token身份令牌。

 

這一篇的初版結束,還有待細化和補充,感謝各位客官。下次再見。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章