控制節點上搭建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身份令牌。
這一篇的初版結束,還有待細化和補充,感謝各位客官。下次再見。