- Keystone 包含的項目:
- 租賃戶(Tenants)
- 角色(Rules)
- 使用者(Users)
- 服務(Services)
- 結束點(End points)
- 分類 (Catalog)
- 權杖 (Tokens)
- 增加服務到 Keystone 服務分類以及註冊結束點
- # keystone service-create --name=SERVICENAME --type=SERVICETYPE --description="DESCRIPTION OF SERVICE" ※PS: type 共有 identity , compute, network, image , object-store
- # keystone endpoint-create --service-id SERVICEID --publicurl 'URL' --adminurl 'URL' --internalurl 'URL'
※PS: service-id 可由上一項指令取得!
- # keystone service-list
- 移除服務以及結束點
- # keystone endpoint-list
- # keystone endpoint-delete ENDPOINTID
- # keystone service-list
- # keystone service-delete SERVICEID
- OpenStack 設定檔
- # crudini --set /etc/keystone/keystone.conf DEFAULT admin_token abcdef1234567890
- Option: --set, --get, --del
- Configuration file : OpenStack configuration file 的位置
- Section : 設定檔內的項目名稱,如:[DEFAULT]
- Parameter : 設定用的參數
- Value : 參數值
- # crudini --set /etc/keystone/keystone.conf DEFAULT admin_token abcdef1234567890
- 登入 Keystone 主機
- 在 Keystone 服務中,啟用 Administrator 權力
- # cat /root/keystonerc_adminexport OS_USERNAME=adminexport OS_TENANT_NAME=adminexport OS_PASSWORD=redhatexport OS_AUTH_URL=http://10.1.1.1:5000/v2.0/export OS_REGION_NAME=RegionOneexport PS1='[\u@\h \W(keystone_admin)]\$'
- # source /root/keystonerc_admin
- # cat /root/keystonerc_admin
- 檢查 Keystone 是否設定成 OpenStack 的服務
- # keystone service-list | grep keystone
- # keystone catalog --service identity
- 所有 OpenStack 的服務,其後端資料與訊息的設定值,應存放在 /etc/SERVICE_NAME/SERVICE_NAME.conf 檔案內!
- # grep "connection=mysql" /etc/keystone/keystone.conf
- # grep rabbit /etc/keystone/keystone.conf
- 可連進 mysql 資料庫,確認一下 Keystone 所使用的資料表格!
- # mysql -e 'use keystone; show tables;'
使用 keystone 指令管理使用者
- keystone 指令可用來管理使用者
- # source ~/keystonerc_admin
- # keystone user-create --name USERNAME --pass PASSWORD
- # keystone user-list
- # keystone user-delete USERID
- 利用 keystone 指令來管理租賃戶
- # keystone tenant-create --name TENANTNAME
- # keystone tenant-list
- # keystone tenant-delete TENANTID
- 角色也可以利用 keystone 來定義
- admin: 擁有管理者權限的角色
- member: 專案成員的角色
- # keystone role-create --name Member
- 使用者連結租賃戶與角色
- # keystone user-role-add --user-id USERID --role-id ROLEID --tenant-id TENANTID
- 其他 keystone 指令
- # keystone help
- # keystone help user-role-list
練習2:利用keystone指令管理使用者
- # source /root/keystonerc_admin
- # keystone user-list
- # keystone role-list
- # keystone tenant-list
- # keystone user-role-list --user admin --tenant admin
- # keystone user-create --name joe --pass redhat
- # keystone tenant-create --name test
- # keystone user-role-add --user joe --role _member_ --tenant test
- # keystone user-role-list --user joe --tenant test
- # vim ~/keystonerc_joeexport OS_USERNAME=joeexport OS_TENANT_NAME=testexport OS_PASSWORD=redhatexport OS_AUTH_URL=http://172.25.0.10:5000/v2.0/export OS_REGION_NAME=RegionOneexport PS1='[\u@\h \W(keystone_joe)]\$ '
- # source ~/keystonerc_joe
- # keystone token-get
Keystone 認證服務的除錯
<<重點觀念>>
- 所有到達不同OpenStack服務API的要求,必須流經由 Keystone 所提供的驗證與授權的過程!
- 任何發自於使用者指令的工作要求,均會帶有帳號密碼驗證值、屬哪一租賃戶,以及驗證的URL值!
- 一旦通過身份驗證的使用者,會取得由 Keystone 發給的權杖,進行管理操作!
- 例:一使用者通過使用 Nova 的驗證後,若要由 Glance 服務來產生新的實體,則會在 Nove 服務上,用權杖向 Glance 請求一新的實體影像檔,來進行實體的建立!
- 在除 Keystone 的錯誤時,無法使用 /root/keystonerc_admin 的權限!可經由下列方式,取得兩項權杖參數:
- # export SERVICE_TOKEN=$(crudini --get /etc/keystone/keystone.conf DEFAULT admin_token)
- # export SERVICE_ENDPOINT=http://demo.example.com:35357/v2.0
練習3:
- # source /root/keystonerc_admin
- # glance image-list -->沒找到網頁,認證失敗
- # cat /root/keystonerc_admin
- # vim /root/keystonerc_admin
- # source /root/keystonerc_admin
- # glance image-list -->現在變成不合理的認證值
- # grep -i ERROR /var/log/glance/* --> port 不是 35357
- # grep -i 35357 /etc/glance/glance-api.conf
- # vim /etc/glance/glance-api.conf
auth_port=353572 --> 改成 35357 - # systemctl restart openstack-glance-api
- # glance image-list