《OpenStack云计算实战手册(第2版)》——1.7 添加用户
本節(jié)書摘來自異步社區(qū)《OpenStack云計(jì)算實(shí)戰(zhàn)手冊(cè)(第2版)》一書中的第1章,第1.7節(jié),作者: 【英】Kevin Jackson , 【美】Cody Bunch 更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號(hào)查看。
1.7 添加用戶
在OpenStack身份認(rèn)證服務(wù)中添加用戶時(shí),必須要有一個(gè)能容納該用戶的租戶,還需要定義一個(gè)能分配給該用戶的角色。在本節(jié)中,創(chuàng)建了兩個(gè)用戶。第一個(gè)用戶名為admin,它在cookbook租戶中被分配為admin角色。第二個(gè)用戶名為demo,同樣在cookbook租戶中,它被分配為Member角色。
準(zhǔn)備工作
在開始之前,必須確認(rèn)已經(jīng)登錄到已經(jīng)安裝了OpenStack身份認(rèn)證服務(wù)的OpenStack控制節(jié)點(diǎn)上,或者有一個(gè)已經(jīng)連接到安裝了OpenStack身份認(rèn)證服務(wù)的服務(wù)器上的Ubuntu客戶端。
執(zhí)行以下命令,登錄到使用Vagrant創(chuàng)建的OpenStack控制節(jié)點(diǎn):
vagrant ssh controller如果keystone客戶端工具尚未安裝,可以通過如下命令在Ubuntu客戶端上安裝以便管理我們的OpenStack身份認(rèn)證服務(wù):
sudo apt-get update sudo apt-get -y install python-keystoneclient確保已經(jīng)設(shè)置了正確的環(huán)境變量,能訪問到OpenStack環(huán)境。
export ENDPOINT=172.16.0.200 export SERVICE_TOKEN=ADMIN export SERVICE_ENDPOINT=http://${ENDPOINT}:35357/v2.0操作步驟
要在OpenStack環(huán)境中創(chuàng)建用戶,需要執(zhí)行如下步驟。
1.如果要在cookbook租戶中創(chuàng)建一個(gè)用戶,首先要獲得cookbook租戶的ID。通過keystone命令,指定tenant-list選項(xiàng),就可以得到該ID,然后將其存儲(chǔ)在TENANT_ID變量中,命令如下所示:
TENANT_ID=$(keystone tenant-list \ | awk '/\ cookbook\ / {print $2}')2.現(xiàn)在已經(jīng)得到了租戶的ID。接下來,用如下命令在cookbook租戶中創(chuàng)建admin用戶,注意要使用user-create選項(xiàng),還需要為該用戶設(shè)置密碼:
PASSWORD=openstack keystone user-create \ --name admin \ --tenant_id $TENANT_ID \ --pass $PASSWORD \ --email root@localhost \ --enabled true輸出如圖1-4所示。
3.在創(chuàng)建admin用戶時(shí),為了賦予它admin角色,需要先獲得admin角色的ID。和第一步中查找租戶ID的方法相似,用role-list選項(xiàng)取出admin角色的ID,然后將其存儲(chǔ)在一個(gè)變量里。
ROLE_ID=$(keystone role-list \ | awk '/\ admin\ / {print $2}')4.為了將角色賦予admin用戶,需要用到創(chuàng)建admin用戶時(shí)返回的用戶ID。執(zhí)行如下的keystone命令,通過usr-list選項(xiàng)列出所有的用戶,從而得到admin用戶的ID:
USER_ID=$(keystone user-list \ | awk '/\ admin\ / {print $2}')5.最后,根據(jù)租戶ID、用戶ID,以及對(duì)應(yīng)的角色I(xiàn)D,通過user-role-add選項(xiàng)把角色賦予對(duì)應(yīng)的用戶。
keystone user-role-add \ --user $USER_ID \ --role $ROLE_ID \ --tenant_id $TENANT_ID提示
注意,成功執(zhí)行該命令之后是沒有輸出的。
6.為了管理整個(gè)環(huán)境,admin用戶也需要在admin租戶中。為此,需要獲得admin租戶的ID并使用新租戶的ID重復(fù)前面的步驟:
7.接下來要在cookbook租戶里創(chuàng)建一個(gè)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身份認(rèn)證服務(wù)里添加用戶之前,必需先創(chuàng)建該用戶對(duì)應(yīng)的租戶和角色。創(chuàng)建好之后,需要取得它們的ID,通過身份認(rèn)證服務(wù)的命令行客戶端程序?qū)⑵浜蛯?duì)應(yīng)的用戶關(guān)聯(lián)起來。要注意同一個(gè)用戶可以同時(shí)是多個(gè)租戶的成員,并且在不同的租戶里可以被賦予不同的角色。
創(chuàng)建用戶的命令選項(xiàng)是user-create,語法如下所示:
keystone user-create \ --name user_name \ --tenant_id TENANT_ID \ --pass password \ --email email_address \ --enabled trueuser_name屬性可以是任意名稱,但不能包含空格。password屬性是必需的,在之前的例子里,它們都被設(shè)為openstack。email_address屬性也是必需的。
賦予一個(gè)用戶某個(gè)角色的命令選項(xiàng)是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總結(jié)
以上是生活随笔為你收集整理的《OpenStack云计算实战手册(第2版)》——1.7 添加用户的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10.6-全栈Java笔记:常见流详解(
- 下一篇: RabbitMQ安装|使用|概念|Gol