1. 程式人生 > >控制節點上搭建Q版keystone服務(step3)

控制節點上搭建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:[email protected]/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身份令牌。

 

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