《OpenStack云計算實戰手冊(第2版)》——1.7 添加用戶

本節書摘來自異步社區《OpenStack云計算實戰手冊(第2版)》一書中的第1章,第1.7節,作者: 【英】Kevin Jackson , 【美】Cody Bunch 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。

1.7 添加用戶

在OpenStack身份認證服務中添加用戶時,必須要有一個能容納該用戶的租戶,還需要定義一個能分配給該用戶的角色。在本節中,創建了兩個用戶。第一個用戶名為admin,它在cookbook租戶中被分配為admin角色。第二個用戶名為demo,同樣在cookbook租戶中,它被分配為Member角色。

準備工作
在開始之前,必須確認已經登錄到已經安裝了OpenStack身份認證服務的OpenStack控制節點上,或者有一個已經連接到安裝了OpenStack身份認證服務的服務器上的Ubuntu客戶端。

執行以下命令,登錄到使用Vagrant創建的OpenStack控制節點:

vagrant ssh controller

如果keystone客戶端工具尚未安裝,可以通過如下命令在Ubuntu客戶端上安裝以便管理我們的OpenStack身份認證服務:

sudo apt-get update  
sudo apt-get -y install python-keystoneclient

確保已經設置了正確的環境變量,能訪問到OpenStack環境。

export ENDPOINT=172.16.0.200  
export SERVICE_TOKEN=ADMIN  
export SERVICE_ENDPOINT=http://${ENDPOINT}:35357/v2.0

操作步驟
要在OpenStack環境中創建用戶,需要執行如下步驟。

1.如果要在cookbook租戶中創建一個用戶,首先要獲得cookbook租戶的ID。通過keystone命令,指定tenant-list選項,就可以得到該ID,然后將其存儲在TENANT_ID變量中,命令如下所示:

TENANT_ID=$(keystone tenant-list \ | awk '/\ cookbook\ / {print $2}')

2.現在已經得到了租戶的ID。接下來,用如下命令在cookbook租戶中創建admin用戶,注意要使用user-create選項,還需要為該用戶設置密碼:

PASSWORD=openstack  
keystone user-create \ --name admin \  --tenant_id $TENANT_ID \  --pass $PASSWORD \  --email root@localhost \  --enabled true

輸出如圖1-4所示。


1b4f4ef9510d75575bc7d112cacede761d69265a

3.在創建admin用戶時,為了賦予它admin角色,需要先獲得admin角色的ID。和第一步中查找租戶ID的方法相似,用role-list選項取出admin角色的ID,然后將其存儲在一個變量里。

ROLE_ID=$(keystone role-list \ | awk '/\ admin\ / {print $2}')

4.為了將角色賦予admin用戶,需要用到創建admin用戶時返回的用戶ID。執行如下的keystone命令,通過usr-list選項列出所有的用戶,從而得到admin用戶的ID:

USER_ID=$(keystone user-list \ | awk '/\ admin\ / {print $2}')

5.最后,根據租戶ID、用戶ID,以及對應的角色ID,通過user-role-add選項把角色賦予對應的用戶。

keystone user-role-add \  --user $USER_ID \  --role $ROLE_ID \  --tenant_id $TENANT_ID

提示

注意,成功執行該命令之后是沒有輸出的。
6.為了管理整個環境,admin用戶也需要在admin租戶中。為此,需要獲得admin租戶的ID并使用新租戶的ID重復前面的步驟:

ADMIN_TENANT_ID=$(keystone tenant-list \ | awk '/\ admin\ / {print $2}')  
keystone user-role-add \  --user $USER_ID \  --role $ROLE_ID \  --tenant_id $ADMIN_TENANT_ID

7.接下來要在cookbook租戶里創建一個demo用戶,并賦予其Member角色,類似前5步,命令如下所示:

# Get the cookbook tenant ID   
TENANT_ID=$(keystone tenant-list \ | awk '/\ cookbook\ / {print $2}')  # Create the user  
PASSWORD=openstack  
keystone user-create \  --name demo \  --tenant_id $TENANT_ID \  --pass  $PASSWORD \  --email demo@localhost \  --enabled true   # Get the Member role ID  
ROLE_ID=$(keystone role-list \ | awk '/\ Member\ / {print $2}')  # Get the demo user ID  
USER_ID=$(keystone user-list \ | awk '/\ demo\ / {print $2}')   # Assign the Member role to the demo user in cookbook   
keystone user-role-add \  --user $USER_ID \    --role $ROLE_ID \  --tenant_id $TENANT_ID

工作原理
在向OpenStack身份認證服務里添加用戶之前,必需先創建該用戶對應的租戶和角色。創建好之后,需要取得它們的ID,通過身份認證服務的命令行客戶端程序將其和對應的用戶關聯起來。要注意同一個用戶可以同時是多個租戶的成員,并且在不同的租戶里可以被賦予不同的角色。

創建用戶的命令選項是user-create,語法如下所示:

keystone user-create \  --name user_name \    --tenant_id TENANT_ID \  --pass password \  --email email_address \  --enabled true

user_name屬性可以是任意名稱,但不能包含空格。password屬性是必需的,在之前的例子里,它們都被設為openstack。email_address屬性也是必需的。

賦予一個用戶某個角色的命令選項是user-role-add,語法如下所示:

keystone user-role-add \  --user USER_ID \  --role ROLE_ID \  --tenant_id TENANT_ID

這表示在賦予角色之前,必須先取得用戶的ID、角色的ID及租戶的ID。這些ID可以通過如下命令得到:

keystone tenant-list  
keystone role-list  
keystone user-list

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541467.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源軟件和自由軟件_自由和開源軟件的經濟學

開源軟件和自由軟件零邊際成本 (Zero Marginal Cost) At the core of the financial aspects of Free and Open Source is the zero negligible expense of merchandise in an environment that is digital. Right now, the rise of Free and Open Source speaks to an affirma…

java外部類_Java里什么叫內部類什么叫外部類

展開全部對普通類(沒有內部類的類)來說,62616964757a686964616fe78988e69d8331333337396234內部類和外部類都與他無關;對有內部類的類來說,它們就是其內部類的外部類,外部類是個相對的說法,其實就是有內部類的類。所以…

《精通Matlab數字圖像處理與識別》一6.2 傅立葉變換基礎知識

本節書摘來自異步社區《精通Matlab數字圖像處理與識別》一書中的第6章,第6.2節,作者 張錚 , 倪紅霞 , 苑春苗 , 楊立紅,更多章節內容可以訪問云棲社區“異步社區”公眾號查看 6.2 傅立葉變換基礎知識 精通Matlab數字圖像處理與識別要理解傅立…

多線程循環輸出abcc++_C ++循環| 查找輸出程序| 套裝5

多線程循環輸出abccProgram 1: 程序1&#xff1a; #include <iostream>using namespace std;int main(){int num 15673;int R1 0, R2 0;do {R1 num % 10;R2 R2 * 10 R1;num num / 10;} while (num > 0);cout << R2 << " ";return 0;}Ou…

java oql_深入理解java虛擬機(八):java內存分析工具-MAT和OQL

以下內容翻譯自MAT幫助文檔。一、Class HistogramClass Histogram shows the classes found in the snapshot, the number of objects for each class, the heap memory consumption of these objects, and the minimum retained size of the objects二、Dominator treeDomina…

《Python數據分析與挖掘實戰》一1.2 從餐飲服務到數據挖掘

本節書摘來自華章出版社《Python數據分析與挖掘實戰》一書中的第1章&#xff0c;第1.2節&#xff0c;作者 張良均 王路 譚立云 蘇劍林&#xff0c;更多章節內容可以訪問云棲社區“華章計算機”公眾號查看 1.2 從餐飲服務到數據挖掘 企業經營最大的目的就是盈利&#xff0c;而餐…

obj[]與obj._Ruby中帶有示例的Array.include?(obj)方法

obj[]與obj.Ruby Array.include&#xff1f;(obj)方法 (Ruby Array.include?(obj) Method) In the previous articles, we have seen how we can check whether two Array instances are identical or not with the help of <> operator, operator, and .eql? method?…

java javah_Java開發網 - 一個javah的問題

Posted by:jerry_xuPosted on:2006-03-13 15:39我在環境變量中已經設置了path為D:\Program Files\Java\jdk1.5.0_06&#xff0c;ClassPath設置為.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;class的路徑為&#xff1a;D:\JNItest\bin\jni\Hello.class &#xff0c;但是…

《Python面向對象編程指南》——2.7 __del__()方法

本節書摘來自異步社區《Python面向對象編程指南》一書中的第2章&#xff0c;第2.7節&#xff0c;作者&#xff3b;美&#xff3d;Steven F. Lott&#xff0c; 張心韜 蘭亮 譯&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.7 __del__()方法 __del__()方…

NullReferenceException C#中的異常

什么是NullReferenceException&#xff1f; (What is NullReferenceException?) NullReferenceException is an exception and it throws when the code is trying to access a reference that is not referencing to any object. If a reference variable/object is not refe…

java map key 大寫轉小寫_Spring JdbcTemplate 查詢出的Map,是如何產生大小寫忽略的Key的?(轉)...

Java 是區分大小寫的&#xff0c;普通的Map例如HashMap如果其中的key"ABC" value"XXX"那么map.get("Abc") 或 map.get("abc")是獲取不到值得。但Spring中產生了一個忽略大小寫的map使我產生了好奇例如 jdbcTemplate.queryForList(sql)…

《iOS 6核心開發手冊(第4版)》——2.11節秘訣:構建星星滑塊

本節書摘來自異步社區《iOS 6核心開發手冊&#xff08;第4版&#xff09;》一書中的第2章&#xff0c;第2.11節秘訣&#xff1a;構建星星滑塊&#xff0c;作者 【美】Erica Sadun&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看 2.11 秘訣&#xff1a;構建星星…

css框架和js框架_優雅設計的頂級CSS框架

css框架和js框架Brief discussion: 簡要討論&#xff1a; Well, who doesnt want their website or web page to look attractive, stylish and be responsive? 那么&#xff0c;誰不希望自己的網站或網頁看起來有吸引力&#xff0c;時尚并且ReactSwift&#xff1f; We put …

軟考下午題具體解釋---數據流圖設計

在歷年的軟考下午題其中&#xff0c;有五道大題。各自是數據流圖的設計&#xff0c;數據庫設計&#xff0c;uml圖&#xff0c;算法和設計模式&#xff0c;從今天這篇博文開始&#xff0c;小編就跟大家來一起學習軟考下午題的相關內容。包含理論上的知識以及典型例題的解說&…

基本程序 打印Scala的Hello World

Scala中的基本程序 (Basic program in Scala) As your first Scala program, we will see a basic output program that just prints "Hello World" or any other similar type of string. With this example, we will see what are the part of the code that is im…

java treemap lastkey_Java TreeMap lastKey()用法及代碼示例

java.util.TreeMap.lastKey()用于檢索Map中存在的最后一個或最高鍵。用法:tree_map.lastKey()參數&#xff1a;該方法不帶任何參數。返回值&#xff1a;該方法返回映射中存在的最后一個鍵。異常&#xff1a;如果映射為空&#xff0c;則該方法將引發NoSuchElementException。以下…

mysql屬于數據庫三級模式_數據庫系統的三級模式指的是什么

數據庫系統的三級模式指的是什么發布時間&#xff1a;2020-10-26 10:11:21來源&#xff1a;億速云閱讀&#xff1a;52作者&#xff1a;小新小編給大家分享一下數據庫系統的三級模式指的是什么&#xff0c;希望大家閱讀完這篇文章后大所收獲&#xff0c;下面讓我們一起去探討吧&…

《自頂向下網絡設計(第3版)》——導讀

目錄 第1部分 辨明客戶的需求和目標 第1章 分析商業目標和制約 1.1 采用自頂向下的網絡設計方法 1.2 分析商業目標 1.3 分析商業制約 1.4 商業目標檢查表 1.5 小結 1.6 復習題 1.7 設計環境 第2章 分析技術目標與折衷措施 2.1 可擴展性 2.2 可用性 2.3 網絡性能 2.4 安全性 2…

python矩陣變化_用numpy改變矩陣的形狀

我的問題有兩個方面。我有下面的代碼來處理一些矩陣。在import numpytupleList [(0, 122), (1, 246), (2, 157), (3, 166), (4, 315), (5, 108), (6, 172), (7, 20), (8, 173), (9, 38), (10, 28), (11, 72), (12, 102), (13, 277), (14, 318), (15, 316), (16, 283), (17, 31…

最小硬幣問題_進行更改的最小硬幣數量

最小硬幣問題Description: 描述&#xff1a; This is classic dynamic programming problem to find minimum number of coins to make a change. This problem has been featured in interview rounds of Amazon, Morgan Stanley, Paytm, Samsung etc. 這是經典的動態編程問題…