《OpenStack云计算实战手册(第2版)》一1.7 添加用户

简介:

本节书摘来异步社区《OpenStack云计算实战手册(第2版)》一书中的第1章,第1.7节,作者: 【英】Kevin Jackson , 【美】Cody Bunch 译者: 黄凯 , 杜玉杰 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 添加用户

OpenStack云计算实战手册(第2版)
在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所示。


4

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
相关文章
|
8月前
|
存储 Linux 云计算
OpenStack云计算平台搭建
OpenStack 是一个开源的云平台管理项目,通过多个核心组件实现公有云、私有云和混合云的构建与管理。自2010年由NASA和Rackspace联合发起以来,已有众多企业和个人参与开发。OpenStack 简化了云部署流程,支持计算、存储和网络资源的高效管理,并兼容多种虚拟化技术和容器。最新版本为Xena,广泛应用于各行各业,如思科、英特尔等公司。
699 0
|
10月前
|
存储 Linux 网络安全
杨校老师课堂之云计算私有云OpenStack框架快速搭建
杨校老师课堂之云计算私有云OpenStack框架快速搭建
230 0
|
11月前
|
安全 Devops 虚拟化
【专栏】虚拟化技术与云计算平台 OpenStack:硬件虚拟化、操作系统级虚拟化和容器化
【4月更文挑战第28天】本文探讨虚拟化技术原理,如硬件虚拟化、操作系统级虚拟化和容器化,以及开源云计算平台OpenStack如何利用这些技术提供优势。OpenStack支持多种虚拟化技术,具备开源灵活性、多租户架构、可扩展性、插件式设计和成本效益。未来,OpenStack将在容器化、DevOps、跨云策略和安全合规性方面发挥更大作用,助力企业数字化转型。
749 4
|
11月前
|
存储 边缘计算 监控
探索未来科技趋势:虚拟化技术与云计算平台OpenStack的概念与实践
在迅猛发展的信息技术时代,企业和组织对于高效、可扩展的计算资源需求日益增长。虚拟化技术和云计算平台OpenStack应运而生,为企业提供了一种灵活、可靠的解决方案。本文将深入探讨虚拟化技术与OpenStack的概念和实践,展示它们在现代科技领域中的重要性和应用前景。
287 3
|
11月前
|
存储 监控 搜索推荐
构建无边界的数字未来:虚拟化技术与云计算平台OpenStack的概念与实践
在当今数字化时代,虚拟化技术和云计算平台已经成为企业和组织实现数字化转型的关键驱动力。本文将介绍虚拟化技术的概念和作用,并重点探讨了开源云计算平台OpenStack在实践中的应用和优势。通过深入了解虚拟化技术和OpenStack平台,读者将能够更好地理解如何利用这些技术构建无边界的数字化未来。
|
11月前
|
存储 人工智能 调度
虚拟化技术与云计算平台 OpenStack:解锁数字化时代的无限潜能
在数字化时代,虚拟化技术和云计算平台已经成为企业和组织加速创新、提高效率的关键工具。本文将介绍虚拟化技术和OpenStack云计算平台的基本概念,探讨其在实践中的应用,以及它们如何协同作用,为企业带来无限的潜能与机会。
|
11月前
|
存储 云计算 虚拟化
云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)
云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)
415 0
|
4月前
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
在数字化浪潮中,云计算如同一股不可阻挡的力量,推动着企业和个人用户步入一个高效、便捷的新时代。然而,随之而来的网络安全问题也如影随形,成为制约云计算发展的阿喀琉斯之踵。本文将探讨云计算服务中的网络安全挑战,揭示信息保护的重要性,并提供实用的安全策略,旨在为读者呈现一场技术与安全的较量,同时指出如何在享受云服务带来的便利的同时,确保数据的安全和隐私。
85 6
|
4月前
|
存储 人工智能 安全
云计算与网络安全:技术融合与挑战
在数字化时代的浪潮中,云计算和网络安全已成为推动社会进步的两大关键技术。本文将探讨云计算服务的发展,网络安全的重要性,以及信息安全技术的演进。我们将通过实例分析,揭示云服务如何增强数据保护,网络安全措施如何应对新兴威胁,以及信息安全技术的创新如何为企业带来竞争优势。文章旨在为读者提供对云计算和网络安全领域的深入理解,并展示它们如何共同塑造我们的未来。
|
4月前
|
监控 安全 网络安全
云计算与网络安全:技术挑战与解决方案
随着云计算技术的飞速发展,其在各行各业的应用越来越广泛。然而,随之而来的网络安全问题也日益凸显。本文将从云服务、网络安全和信息安全等技术领域出发,探讨云计算面临的安全挑战及相应的解决方案。通过实例分析和代码示例,旨在帮助读者更好地理解云计算与网络安全的关系,提高网络安全防护意识。