(一) Keystone端的操作
(二) 如何在OpenStack服務(wù)上部署Keystone中間件
(三) 詳細(xì)配置keystonemiddleware
OpenStack項(xiàng)目如果要使用Keystone作為統(tǒng)一的身份與權(quán)限管理系統(tǒng), 需要做一定的設(shè)置工作, 我們將這些設(shè)置劃分為在Keystone端進(jìn)行的操作和在其他OpenStack服務(wù)端進(jìn)行的操作, 本文介紹在Keystone端如何為其他服務(wù)建立對(duì)應(yīng)的"服務(wù)用戶"和維護(hù)整個(gè)系統(tǒng)的服務(wù)目錄.
OenStack中用戶使用身份憑證登錄系統(tǒng), 獲得Keystone簽發(fā)的令牌, 其后在整個(gè)OpenStack系統(tǒng)中使用該令牌訪問其他的服務(wù)(如Nova等)直至令牌失效或被撤銷. 令牌在OpenStack系統(tǒng)內(nèi)提供了單點(diǎn)登錄的支持, 簡化了系統(tǒng)對(duì)用戶的認(rèn)證, 成為用戶身份和權(quán)限管理的重要對(duì)象.
用戶在使用已經(jīng)獲得的令牌請(qǐng)求OpenStack的其他服務(wù)時(shí), 這些服務(wù)必須驗(yàn)證令牌的有效性--即這個(gè)令牌確實(shí)是Keystone已經(jīng)簽發(fā)的,且沒有過期和被撤銷. 這個(gè)驗(yàn)證工作由項(xiàng)目名稱為"keystonemiddleware"的Keystone中間件完成.?Keystone中間件部署在OpenStack其他服務(wù)上, 調(diào)用項(xiàng)目(或庫)"python-keystoneclient"提供的接口, 驗(yàn)證用戶令牌的有效性.?Keystone中間件進(jìn)行的驗(yàn)證工作需要訪問Keystone的身份API, 這個(gè)操作需要一定的權(quán)限才能完成.?因此需要在Keystone端先為Keystone中間件創(chuàng)建用戶, 再為這個(gè)用戶指派具有相應(yīng)權(quán)限的角色.由于部署和配置Keystone中間件的工作在其他OpenStack服務(wù)端完成, 因此將創(chuàng)建用戶和授予角色等操作針對(duì)服務(wù)進(jìn)行,?Keystone中間件直接使用自己部署在的服務(wù)具有的賬戶信息即可. (當(dāng)然, 也可以直接繞過身份認(rèn)證, 將Keystone中間件的令牌設(shè)置成引導(dǎo)Keystone時(shí)設(shè)置的"admin_token", 這樣Keystone中間件默認(rèn)具有最高權(quán)限).
Keystone端的工作主要包括以下兩個(gè)方面:
1. 創(chuàng)建"服務(wù)用戶"并指派角色.
2. 維護(hù)整個(gè)OpenStack系統(tǒng)的服務(wù)目錄.
下文就圍繞這兩方面工作詳細(xì)展開.
?
一. 創(chuàng)建"服務(wù)用戶"并指派角色
1. 創(chuàng)建"服務(wù)項(xiàng)目"
從上文可以看出, OpenStack服務(wù)或部署在其上的Keystone中間件實(shí)質(zhì)上也是Keystone的用戶. 通常我們?yōu)樗械腛penStack服務(wù)創(chuàng)建一個(gè)統(tǒng)一的項(xiàng)目, 如"service". 這里使用openstackclient完成命令行操作, 所有的操作都是基于第三版的身份API完成.
首先與系統(tǒng)建立一個(gè)會(huì)話,
$ openstack --os-token
admin_token
--os-url
keystone_url
--os-identity-api-version
3
#Press Enter
一旦認(rèn)證成功, 系統(tǒng)顯示如下的提示符, 表示進(jìn)入到openstackclient提供的腳本界面.
(openstack) YOUR_COMMAND_HERE
接著創(chuàng)建一個(gè)包含所有將要部署的OpenStack服務(wù)的"服務(wù)項(xiàng)目", 這里將其命名為"service".
(openstack) project create service
為具體類型的OpenStack服務(wù)(這里以Nova為例)創(chuàng)建屬于他們的用戶(當(dāng)然也可以多個(gè)服務(wù)使用一個(gè)用戶名).
(openstack) user create --password PassWord --project service nova
在已經(jīng)配置好Keystone, 創(chuàng)建和定義了具體的管理員角色后, 為剛剛新建的"服務(wù)用戶"授予項(xiàng)目內(nèi)的管理員角色, 確保其能夠調(diào)用驗(yàn)證令牌的身份API. 這里以授予系統(tǒng)默認(rèn)的"admin"角色為例.
(openstack) role add admin --project service --user nova
這樣用戶"nova"就具有了在項(xiàng)目"service"上的"admin"角色.
?
二. 維護(hù)整個(gè)OpenStack系統(tǒng)的服務(wù)目錄
Keystone在OpenStack系統(tǒng)中提供的一項(xiàng)重要支持就是維護(hù)著整個(gè)系統(tǒng)中所有服務(wù)的目錄. 包括服務(wù)的類型, 名稱, 具體的端點(diǎn)URL等. 其他服務(wù)如Dashboard非常依賴這些信息. Keystone自帶兩種服務(wù)目錄存儲(chǔ)驅(qū)動(dòng), 既可以將服務(wù)目錄存儲(chǔ)在文件中, 也可以存儲(chǔ)在SQL后端中. 當(dāng)然, 前端的用戶接口都是一樣的.
在向OpenStack系統(tǒng)中添加服務(wù)時(shí), 應(yīng)將其注冊(cè)到Keystone的服務(wù)目錄下, 這樣其他服務(wù)才能通過服務(wù)目錄找到它.
(openstack) service create nova -- type compute \ --description " Nova Compute Service " (openstack) service create glance -- type image \ --description " Glance Image Service " (openstack) service create keystone -- type identity \ --description " Keystone Identity Service "
(openstack) service create swift --type object - store \ --description " Swift Service "
OpenStack系統(tǒng)中服務(wù)只是一個(gè)抽象的概念, 具體的功能是通過訪問服務(wù)對(duì)應(yīng)的端點(diǎn)(URL)完成的, 因此必須在成功部署某個(gè)服務(wù)端點(diǎn)后其添加到系統(tǒng)的服務(wù)目錄.
(openstack) endpoint create keystone public http: // 201.111.129.48:5000/
上面的指令將一個(gè)端點(diǎn)添加到了服務(wù)“keystone”的公共界面. 端點(diǎn)可以屬于特定的地理域, 具體操作可以查閱這里.
這里就完成了部署OpenStack服務(wù)時(shí)在Keystone端進(jìn)行的操作. 前文已經(jīng)說過, 其他服務(wù)與Keystone的交互通常是由Keystone中間件完成的, 下一篇隨筆將介紹 如何在OpenStack服務(wù)上部署Keystone中間件 .
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
