1. 程式人生 > >二·Openstack 管理專案與使用者

二·Openstack 管理專案與使用者

(本文所有提及OSP=OpenStack Platform)

1 管理專案

1) OpenStack 專案簡介:

● Linux 中通過實施使用者和組來控制對作業系統資源的訪問
● OSP 利用域、專案、組和使用者來組織OpenStack 資源
● admin 使用者可用於登入Horizon 控制面板或通過命令列管理OpenStack。此
● admin 使用者類似於Linux 作業系統中的root 使用者。此使用者屬於admin 專案在OpenStack 中,身份驗證和授權服務由OpenStack 身份服務提供, 其代號為 Keysto n e
● 使用者通過身份服務API 端點進行身份驗證,然後請求其它OpenStack 服務
● OSP 支援Keystone API 的版本2 和3,本課程使用版本2

2 )OpenStack 身份服務所用的術語:

● 專案:使用者及其擁有的資源的集合。根據雲提供商,這可用於對映客戶、帳戶或組織單元。OSP 附帶了兩個專案,名為admin 和services。 這兩個專案屬於default 域

● 使用者: 代表使用OpenStack 服務的人員或雲使用者。RHOSP 附帶了admin使用者,該使用者從屬於admin 專案並且分配有admin 角色。

● 角色: 定義一組特權, 從而能夠對OpenStack 服務執行特定的操作。RHOSP 附帶了兩個預定義角色,即admin 和 member_。member 角色提供專案中資源的普通使用者訪問許可權。admin 角色提供整個OpenStack 環境的管理特權

● 憑據: 是Keystone 驗證使用者身份時需要的身份驗證資料。此資訊包含使用者名稱、密碼、專案名稱、Keystone 端點和地區名稱。通過利用此資訊,在使用者發出訪問服務的請求時,Keystone提供身份驗證令牌, 讓使用者能夠訪問該服務

● 地區: 用於在邏輯上表示不同的RHOSP 部署。這些部署可以按照地理位置來劃分,並且相應地命名。例如,一個地區可以命名為in-mumbai,來代表位於印度孟買的OpenStack 部署。這些地區可以進一步劃分為子地區

● 組:是域中的使用者集合。通過分配角色到組,可以向該組中的所有使用者分配特權。將使用者從組中刪除,便可撤銷這些特權以及使用者與專案或域的關聯。Keystone API 的版本了中支援組

● 域: 是可以在單個身份域中定義的專案和使用者的集合。域可以對映到個人、公司或雲服務運營商。Keystone API 的版本3 中支援域。如果沒有建立域,所有專案和使用者都使用default 域

3)管理OpenStack 專案:

● 較早版本的OSP 中曾經使用“租戶tenant”一詞。專案可以對映到組織、帳戶或客戶

● 專案有助於使用者使用單一OpenStack 環境,不必互相干擾許可權和資源。例如,可以將上傳到專案的映象標記為專用映象,使其他專案中的使用者無法訪問此映象

● 可以將多個使用者分配到一個專案。分配到專案的使用者有權在該專案內建立和管理虛擬資源。一個使用者還可與多個專案關聯

● 建立和刪除專案: 專案可以由admin 帳戶建立,也可由分配了專案的admin 角色的使用者建立

● 每個專案配置有一組資源配額,可以在建立專案時編輯。刪除專案時,會同時移除該專案的所有使用者關聯

4) 利用OpenStack CLI 建立和刪除專案:

● 提供Keystone 憑據檔案, 使得OpenStack 命令列工具能夠與OpenStack 服務通訊。若要建立專案,使用者必須具備管理員特權
● 通過openstack project create 命令建立專案。該命令取專案名稱作為引數。您可以使用–description 選項指定專案的描述(可選)。專案預設為啟用, 可通過–disable 選項使專案的初始狀態為禁用
● 通過openstack project delete 命令刪除專案。該命令取專案名稱或ID 作為選項。您可以利用空格分隔的列表,一次性刪除多個專案
● 使用 openstack project list 命令列出所有當前可用的專案,並驗證該專案已被刪除
# openstack project create--description "Demo Org Project"--domain demo-org--project project-name

2 管理使用者

1)OpenStack 使用者簡介:

● 系統使用者是真實的人或者由特定應用使用的帳戶
● 使用者可以是自服務使用者,可以管理例項、卷、網路和新映象,還可以執行其他任務
● 使用者也可以是由OpenStack 服務使用的帳戶
● 使用者可以訪問從屬於自己分配到的專案的雲資源,就如在任何作業系統中一樣,使用者可以具有檔案和目錄的許可權
● OpenStack 使用者具有一組有限的許可權和特權, 由分配給使用者的使用者角色定義。身份驗證是確認使用者身份的過程。就如任何Linux 作業系統一樣,通過提供使用者名稱和密碼來登入系統。OSP 身份服務支援多種身份驗證方式,包括使用者名稱與密碼、LDAP 以及其他外部身份驗證方式
● 身份驗證成功後,使用者獲得訪問OpenStack 服務所需的授權令牌
● OpenStack 組: 組在身份服務APIV3 中引入,是域中的使用者集合。與Linux 組相似,域中某個組被分配到的組角色會應用到該組中的所有使用者。使用者新增到組中後,便可使用與這個組所屬域關聯的身份驗證方式。啟用身份服務APIV3 後,可以利用Horizon 控制面板或OpenStack 統一CLI 建立組。使用openstack group create 命令建立組。–domain選項用於在特定域中建立組

2)管理OpenStack 使用者:

● OSP 提供一個名為admin 的預設使用者,該使用者具有訪問所有專案和域的全部特權。管理員可以利用Horizon 控制面板或OpenStack 統一CLI 建立和編輯使用者,並將使用者新增到專案或域中的組
● 使用者可以從屬於多個專案
● 從控制面板管理使用者: 使用控制面板建立使用者需要管理員特權。控制面板提供選擇了相應的選項,可為使用者選擇主專案、密碼和電子郵件地址
● 如果管理員希望防止某一現有使用者生成任何服務請求,可以暫時禁用其使用者帳戶。在控制面板中,導航到Identity > Users。在Actions 列下的列表中,選擇Disable User 來禁用該使用者
● 在控制面板中的Users 選項卡上,從Actions 列下的列表中選擇Enable User 來啟用該使用者。在建立使用者後,使用其使用者名稱和密碼登入控制面板,以訪問OpenStack 服務從控制面

3)從CLI 管理使用者:

● 若要從OpenStack CLI 建立使用者,可使用openstack user create 命令
● 若要建立需要以互動式方式輸入密碼的使用者,可使用 -password-prompt 選項在使用OpenStack 命令列客戶端時,必須提供使用者的Keystone 憑據檔案。使用者
● 的Keystone 憑據檔案設定OpenStack 命令列客戶端所需的環境變數

  ● $openstack user create--proj ect demoproj ect--password-prompt demouser
  ● $openstack user create--project demoproject demouser
  ● $ openstack user set--disable demouser
  ● $ openstack user set--enable demouser

4) 從OpenStack CLI 管理使用者:

I.提供專案管理員Keystone 憑據檔案,以獲取管理員許可權。
2.使用openstack user create 命令建立使用者。預設情況下,所有使用者都為啟用狀態 且分配有 member 使用者角色。
3.使用openstack user list 命令可列出所有使用者。,使用openstack user show 命令可檢視特定使用者的詳細資訊。
4.驗證新使用者可以訪問OpenStack。提供使用者的Keystone 憑據檔案,然後使用該使用者的Keystone 憑據執行任何openstack 命令。
5.以管理員身份,使用openstack user set--disable 命令來禁用使用者帳戶
6 .驗證該使用者帳戶已被禁用。提供已禁用使用者的Keystone 憑據檔案,再執行任何openstack命令。
7.以管理員使用者身份,更新使用者的帳戶。使用openstack user set 命令以啟用該使用者,或更新其電子郵件地址、使用者名稱或密碼。–enable 選項可使用者啟用使用者帳戶–password-prompt 選項以互動式方式提示輸入密碼。
8.使用openstack user delete 命令來刪除使用者。必須將使用者名稱或ID 指定為命令的
引數。
9.通過列出專案中的當前使用者,確認該使用者已被刪除

5) 新增使用者到專案:

● 使用者可以在建立時新增到專案中。也可利用控制面板或OpenStack CLI 將現有使用者新增到專案中。從Horizon 控制面板中,單擊Identity > Projects > ManageMembers,在專案中新增或移除使用者
● 在OpenStack CLI 中,使用openstack user set--project 命令來更改使用者的主專案。若要新增使用者到其他專案, 可使用openstack role add 命令。使用此命令可為使用者分配專案中的member 角色

3 使用者角色與特權

1)使用者角色簡介:

● 成功通過身份驗證後,使用者基於其授權獲得OpenStack 服務的訪問許可權。在OpenStack 中,不同服務通過引用與使用者關聯的角色來提供服務訪問許可權。角色定義使用者通過身份驗證後可以執行的操作。
● 分配給從屬於某一專案的使用者的角色稱為使用者角色。在KeystoneAPIv3 中,使用者從屬於組,組則分配到角色。分配給組的角色稱為組角色
● admin 使用者從屬於admin 專案,它分配有admin 使用者角色。admin 使用者類似於Linux 作業系統中的root 使用者,因為它具有全部的管理特權
● OpenStack Platform 附帶了admin 和member 兩種預定義使用者角色。
● admin 角色具備所有專案的資源的全部特權
● 當用戶關聯到某一專案時(專案成員),會分配到member 使用者角色。如果專案中的使用者被分配了admin 使用者角色,則該使用者獲得與admin 使用者相同的特權。此使用者不僅是所屬專案的管理員,還能夠管理OpenStack 環境中的所有專案
● admin 使用者角色因此要預防特權過高問題。這就是說,必須對具有admin 使用者角色的使用者實施更為嚴格的身份驗證機制,如雙重認證等。Keystone APIv3 中引入了域,來克服與admin 使用者角色關聯的特權過高問題

2)管理使用者角色:

● 可以從Horizon 控制面板建立和編輯使用者角色
● 以管理員身份,登入Horizon 控制面板並導航到Identity > Roles。若要建立新角色,可單擊Create Role。若要為使用者分配角色,可在建立該使用者時選取角色。可以通過從Identity > Projects 編輯專案成員,為現有的使用者分配新使用者角色

3)從控制面板管理使用者角色:

● 角色定義了一組許可權和特權。將角色分配給使用者時,使用者可繼承該角色的許可權和特權。使用者請求服務時,該服務將解讀使用者分配到的使用者角色,並根據該角色來提供訪問許可權
I.以具備管理員特權的使用者身份,導航到Identity>Projects
2.若要為使用者分配角色,首先選擇該使用者所屬的專案。單擊Actions 列下的Manage Members
3.在Edit project 對話方塊中,單擊Project Members 選項卡。在Project Members部分中,選擇使用者的所需角色。單擊Save。預設情況下,所有使用者在新增到專案時會分配到member 角色

4)從CLI 管理使用者角色:

● 使用OpenStack 命令列客戶端時,可通過openstack role create role-name 命令來建立使用者角色。若要列出使用者角色,可使用openstack role list 命令
● 分配使用者角色到現有使用者:若要從Horizon 控制面板分配使用者角色到現有使用者可從Identity > Projects 編輯專案成員。在使用OpenStack CLI 時,可通過openstack role add 命令為使用者新增角色: $ openstack role add --project demo-project --user demo-user demo-role
● 使用openstack role assignment list 命令可列出分配至專案中某一使用者的使用者角:
$ openstack role assignment list --project demo-project --user demo-user --names

4 管理配額

Linux 管理員可以實施系統配額,以限制使用者訪問有限數量的磁碟空間
OSP 專案配額類似於Linux 檔案系統配額。OpenStack 管理員可以配置配額來防止系統資源被用盡
專案配額以每個專案為基礎設定,限制能夠分配給該專案的資源數量
這些執行上的限制可以讓管理員更加密切地控制OpenStack 內的專案;例如,基於分配給專案的RAM 量來定義配額。這可用於防止客戶端提交超過必要數量的記憶體,或使用多於其服務協議中的額度
每個專案都有一組預設的配額值。可以為新專案修改這些預設值,也可以為任何現有專案更新它們

1)檢視預設專案配額:

● OpenStack 附帶有預設配額,為專案提供配額限值。可以通過修改這些值,為專案提供更多資源
● 若要從Horizon 控制面板檢視預設配額,請以管理員身份登入,再導航到Admin > System >Defaults.Defaults 選項卡中顯示預設專案配額
● CLI檢視,使用命令:
$ openstack quota show --default

2)更新預設專案配額:

● 可以通過更新預設配額,為所有專案設定新的額度限值
● 如果使用控制面板,可以管理員身份登入,再導航到Admin > System >Defaults。單擊Update Defaults 以更新預設專案配額。
● 在撰寫本文時,openstack 命令尚未提供用於更新預設專案配額的命令。管理員可以利用nova quota-class-update default 命令來更新預設專案配額python-novaclient 軟體包提供 nova quota-* 命令
● 例如, 執行下列命令可以將例項數量配額設定為15: $ nova quota-class-update default--instances 15

3)利用Horizon 控制面板建立具有配額的專案:

● OpenStack Platform 附帶專案的預設配額。可以編輯這些專案配額,對專案的成員定義資源使用量限制。下列步驟描述了建立具有預設配額的專案並在專案建立後編輯這些配額的流程
I.在Web 瀏覽器中開啟控制面板,再以具備管理特權的使用者身份登入。導航到Identity >Proj ects
2.單擊Create Project 以建立專案。,在:Quotas 選項卡中,所有欄位都填充了預設的專案配額限值。例如,Instances的預設配額是10。這表示,在任何一個時間點上專案中最多隻能存在10 個例項。單擊Save。
3.導航到Identity>Users。建立一個使用者,並使其成為專案的成員
4.以管理員身份,導航到Admin>System>Defaults 來檢視和編輯預設配額。單擊UpdateDefaults,編輯所有專案的預設配額
5.驗證預設配額更改。例如,如果您更改了例項數,可以專案成員使用者身份登入控制面板再啟動一個例項來驗證這一更改
6.以管理員身份登入控制面板,來編輯專案的預設配額。導航到Identity>Projects
7.若要編輯專案配額,可選擇Actions 列中的Modify Quotas.單擊Save
8.以專案成員使用者身份登入控制面板再啟動一個例項,以驗證更新的配額。如果超過了任何配額,Overview 頁的Limit Summary 部分中將以紅色顯示此資訊

4)利用OpenStack CLI 建立具有配額的專案:

● 下列步驟概述了通過命令列建立具有預設配額的專案並在專案建立後編輯這些配額的流程
I.提供管理員Keystone 憑據檔案,再利用openstack project create 命令建立一個專案
2.利用openstack user create 命令建立作為專案成員的使用者
3.利用openstack quotas show--default 命令列出預設專案配額
4.提供管理員的憑據檔案,以編輯專案配額。利用openstack quota set 命令編輯專案配額
5.利用openstack quota show 命令列出專案配額,以驗證新的配額值