日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

(原創(chuàng))OpenStack服務(wù)如何使用Keystone (二)--

系統(tǒng) 2239 0

  (一) Keystone端的操作

  (二) 如何在OpenStack服務(wù)上部署Keystone中間件

  (三) 詳細(xì)配置keystonemiddleware

?

  部署OpenStack時(shí)一般先安裝Keystone服務(wù), 一旦Keystone運(yùn)行, 管理員搭建起服務(wù)目錄, 形成OpenStack系統(tǒng)的框架. 創(chuàng)建"服務(wù)用戶"和服務(wù)目錄在 上一篇隨筆 中有詳細(xì)的介紹.

  配置OpenStack服務(wù)與Keystone協(xié)同工作, 需要在這些服務(wù)上部署"keystonemiddleware"(即Keystone中間件), 通過(guò)該中間件完成令牌驗(yàn)證等需要和與Keystone交互的功能.

  Keystone中間件的大體工作流程:

  1. 客戶端向服務(wù)發(fā)送服務(wù)請(qǐng)求是會(huì)攜帶從Keystone那里獲得的令牌;

  2. Keystone中間件會(huì)查詢并驗(yàn)證這個(gè)令牌的有效性, 并采取相應(yīng)的措施;

  3. Keystone中間件會(huì)從有效的令牌中提取諸如用戶名, 用戶ID, 項(xiàng)目名, 項(xiàng)目ID, 角色等信息, 并將這些信息以header的形式傳遞給"下游"的OpenStack服務(wù).

  配置Keystone中間件并不是工作的全部, 我們將在下文進(jìn)行詳細(xì)的介紹.

  Keystone中間件的"身份"和普通用戶的身份不同. Keystone中間件部署在OpenStack服務(wù)的Paste管道上, 代表服務(wù)攔截用戶的HTTP請(qǐng)求, 驗(yàn)證用戶提供的令牌是否真實(shí)有效, 并判斷用戶是否具有相應(yīng)的權(quán)限. 因此Keystone中間件的 "身份" 實(shí)質(zhì)是其部署在OpenStack服務(wù)在Keystone服務(wù)端的身份. Keystone中間件是一個(gè)特殊的Keystone用戶.

?

  下面介紹如何部署和配置Keystone中間件:

  1. 安裝代碼. 在OpenStack服務(wù)所在主機(jī)上安裝"keystonemiddleware"項(xiàng)目代碼, 可采用pip, easy_install工具或從GitHub下載源碼等多種方式安裝. Git項(xiàng)目和Pypi包均名為"keystonemiddleware".

?

  2. 定義Paste過(guò)濾器. 在OpenStack服務(wù)的Paste部署文件(如:api-paste.ini)中,設(shè)置如下的WSGI組件:

      
        [
      
      
        filter:authtoken
      
      
        ]
      
      
        

paste.filter_factory 
      
      = keystonemiddleware.auth_token:filter_factory
    

?

  3. 安裝Keystone中間件. 將2中定義的Paste過(guò)濾器 "authtoken" 添加到Paste管道的適當(dāng)位置, 完成在OpenStack服務(wù)上部署Keystone中間件.?

?

  4. 配置Keystone中間件. Keystone中間件的配置項(xiàng)包括Keystone服務(wù)的URL, 中間件用戶名, 密碼等. 具體的配置項(xiàng)我們?cè)谙乱黄S筆中進(jìn)行詳細(xì)介紹. Keystone中間件有兩種配置方法, 一是在第2步定義過(guò)濾器時(shí)緊隨工廠函數(shù)設(shè)置. 另一種是將配置信息統(tǒng)一寫入到OpenStack服務(wù)的主配置 *.conf文件中, 保持Paste部署文件簡(jiǎn)潔. 需注意當(dāng)兩處進(jìn)行了重復(fù)配置時(shí),?Paste配置文件中的配置項(xiàng)起決定作用.?

  注意兩種方法的細(xì)微差別:

  (1) 在Paste部署文件中配置Keystone中間件,

      
        [
      
      
        filter:authtoken
      
      
        ]
      
      
        

paste.filter_factory 
      
      =
      
         keystonemiddleware.auth_token:filter_factory

identity_uri 
      
      = http://
      
        identity_url
      
      :35357
      
        /

admin_user 
      
      =
      
        
           nova
        
        

admin_password 
      
      =
      
        
           password
        
        

...
      
    

  這種方式的好處的是簡(jiǎn)單方便, Keystone中間件的部署與配置點(diǎn)相同.

?

  (2) 在*.conf配置文件中配置Keystone中間件,

      
        [
      
      
        DEFAULT
      
      
        ]
      
      
        

...

auth_strategy
      
      =
      
        keystone

...




      
      
        [
      
      
        keystone_authtoken
      
      
        ]
      
      
        

identity_uri 
      
      = http://
      
        identity_url
      
      :35357
      
        /

admin_user 
      
      =
      
        
           nova
        
         

admin_password 
      
      = 
      
        password
        
...

  即首先要到*.conf文件的? [ DEFAULT ] ?段落下找到? auth_strategy ?字段, 設(shè)置為"keystone". 接著到? [ keystone_authtoken ] ?段落下, 配置項(xiàng)同(1).

  可采取這些流程配置Keystone中間件的OpenStack服務(wù)包括: Nova, Neutron, Cinder, Glance等. 具體的配置文件分別是,

  Nova:   nova.conf 和 api-paste.ini

  Neutron: ?neutron.conf 和 api-paste.ini

  Cinder: ? ?cinder.conf 和 api-paste.ini

  Glance: ? ?glance-api.conf 和glance-api-paste.ini

  對(duì)象存儲(chǔ)服務(wù)Swift略有不同. Swift默認(rèn)的認(rèn)證授權(quán)組件"tempauth"已經(jīng)逐漸被社區(qū)棄用, 推薦一致地使用Keystone. Swift的默認(rèn)配置目錄中沒(méi)有Paste部署文件, 因此對(duì)Keystone中間件的部署和配置都在Swift的proxy-server.conf文件中完成.

  在Swift的proxy-server.conf文件中查找如下段落, 注意其中的 "tempauth"中間件,

      
        [
      
      
        pipeline:main
      
      
        ]
      
      
        

pipeline 
      
      = ... tempauth ... proxy-server
    

  這里Swift默認(rèn)使用自帶的Paste過(guò)濾器? tempauth , 要使用Keystone中間件, 就要將這個(gè)Paste管道中的? tempauth ?替換成如下的兩個(gè)Paste過(guò)濾器:

      
        [
      
      
        pipeline:main
      
      
        ]
      
      
        

pipeline 
      
      = ... authtoken keystoneauth ... proxy-server
    

  在文件proxy-server.conf中配置Paste過(guò)濾器? authtoken ?和? keystoneauth ?:

      
        [
      
      
        filter:authtoken
      
      
        ]
      
      
        

# paste.filter_factory 
      
      =
      
         keystonemiddleware.auth_token:filter_factory

# auth_uri 
      
      = http://keystonehost:5000
      
        /

# admin_user 
      
      =
      
         swift

# admin_password 
      
      =
      
         password

...




      
      
        [
      
      
        filter:keystoneauth
      
      
        ]
      
      
        

# use 
      
      =
      
         egg:swift#keystoneauth

...

# operator_roles 
      
      = admin,
      
         swiftoperator

...

# reseller_admin_role 
      
      =
      
         ResellerAdmin


      
      
        ...

# default_domain_id 
      
      =
      
         default


      
      
        ...

# allow_names_in_acls 
      
      = true
    

  配置文件模板會(huì)默認(rèn)注釋掉所有配置項(xiàng), 管理員根據(jù)旁邊的說(shuō)明取消注釋, 將配置項(xiàng)設(shè)置成適當(dāng)?shù)闹? 這樣就完成了在Swift上部署Keystone中間件的工作.

  前文介紹了OpenStack的主要服務(wù)如何整合Keystone, 部署Keystone中間件. 這里還要簡(jiǎn)單說(shuō)明OpenStack的Dashboard如何與Keystone整合.

  Horizon是 OpenStack 的 Web UI, 為了使用第三版的 Keystone API, 我們需要在 Horizon 的 openstack_dashboard/local/local_settings.py 文件中做如下改動(dòng):

  1. 在配置項(xiàng)? OPENSTACK_API_VERSIONS ?中添加? "identity": 3 ?

  2. 將配置項(xiàng)? OPENSTACK_KEYSTONE_URL ?的URL以? /v3/ ?結(jié)尾.

  至此就完成了Keystone中間件的部署, 本文沒(méi)有涉及OpenStack的所有項(xiàng)目, 但是OpenStack不同服務(wù)的相似性很高, 后上馬的項(xiàng)目尊重前期項(xiàng)目得出的一致性經(jīng)驗(yàn). 我們以O(shè)penStack最核心的服務(wù)入手, 介紹了如何將其與Keystone服務(wù)整合. 接下來(lái), 詳細(xì)配置Keystone中間件 .

(原創(chuàng))OpenStack服務(wù)如何使用Keystone (二)---部署和配置Keystone中間件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 锦州市| 阿荣旗| 丽水市| 娄底市| 灌云县| 泗阳县| 武宁县| 通州市| 密云县| 湟源县| 浠水县| 论坛| 潮州市| 科技| 故城县| 桃源县| 冀州市| 盐亭县| 木里| 福清市| 惠来县| 天柱县| 扶风县| 台北县| 濉溪县| 井研县| 乐山市| 宜城市| 湖口县| 临高县| 鹤壁市| 社旗县| 内乡县| 阜宁县| 阿拉善盟| 东乡| 新丰县| 安平县| 分宜县| 亚东县| 牙克石市|