《OpenStack云计算实战手册(第2版)》一1.9 配置服务的租户和服务的用户

简介:

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

1.9 配置服务的租户和服务的用户

OpenStack云计算实战手册(第2版)
服务端点创建完成以后,接下来配置它们以便其他OpenStack服务能够调用它们。为此,要为每个服务都配置一个特定的service租户,并指定对应的用户名和密码。这样的目的是保证更高的安全性、以及用来为云环境做故障排除和审计等工作。对于每一个需要OpenStack身份认证服务来验证和授权的服务,都需要在该服务启动之前,在其相关的配置文件里详细写明用于Keystone验证的用户名和密码。例如,glance服务是在/etc/glance/glance-registry-api.ini文件中指定,当OpenStack身份认证服务使用时,必须与之前创建的相匹配。

[filter:authtoken]  
paste.filter_factory = keystone.middleware.auth_token:filter_factory  
service_protocol = http  
service_host = 172.16.0.200  
service_port = 5000  
auth_host = 172.16.0.200  
auth_port = 35357  
auth_protocol = http  
auth_uri = http://172.16.0.200:5000/  
admin_tenant_name = service  
admin_user = glance  
admin_password = glance

准备工作
在开始之前,必须确认已经登录到已经安装了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

操作步骤
要配置一个合适的服务租户,需要执行如下步骤。

1.创建服务租户,命令如下所示:

keystone tenant-create \  
   --name service \  
   --description "Service Tenant" \  
   --enabled true

输出如图1-6所示。


6

2.记录下服务租户的ID,以方便后面使用。

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

3.对于本节中的所有服务,都会为其创建一个用户账户,用户名和密码都和服务名称一致。例如,会在服务租户里用user-create选项创建一个用户名和密码均为nova的用户,命令如下所示:

keystone user-create \  
   --name nova \  
   --pass nova \  
   --tenant_id  $SERVICE_TENANT_ID \  
   --email nova@localhost \   
   --enabled true

输出如图1-7所示。


7

4.重复上一步,继续为其他用到OpenStack身份认证功能的服务创建用户。

keystone user-create \  
   --name glance 
   --pass glance \ 
   --tenant_id $SERVICE_TENANT_ID \ 
   --email glance@localhost \  
   --enabled true

keystone user-create \  
   --name keystone \  
   --pass keystone \ 
   --tenant_id $SERVICE_TENANT_ID \  
   --email keystone@localhost \ 
   --enabled true

keystone user-create \
   --name cinder \
   --pass cinder \
   --tenant_id $SERVICE_TENANT_ID \
   --email cinder@localhost \
   --enabled true

5.现在为这些服务租户里的用户分配admin角色。为此,需要先取得nova用户的用户ID,然后在用user-role-add选项来分配角色。例如,为了将admin角色分配给服务租户里的nova用户,命令如下所示:

# Get the nova user id   
NOVA_USER_ID=$(keystone user-list \
   | awk '/\ nova\ / {print $2}')  

# Get the admin role id  
ADMIN_ROLE_ID=$(keystone role-list\
   | awk '/\ admin\ / {print $2}')  

# Assign the nova user the admin role in service tenant  
keystone user-role-add\ 
   --user $NOVA_USER_ID\ 
   --role $ADMIN_ROLE_ID\
   --tenant_id $SERVICE_TENANT_ID

6.接下来,重复上一步,继续为其他服务租户(glance、keystone和cinder用户)分配角色。

# Get the glance user id
GLANCE_USER_ID=$(keystone user-list\
   | awk '/\ glance\ / {print $2}')

# Assign the glance user the admin role in service tenant
keystone user-role-add\ 
   --user $GLANCE_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

# Get the keystone user id
KEYSTONE_USER_ID=$(keystone user-list\
   | awk '/\ keystone\ / {print $2}')

# Assign the keystone user the admin role in service tenant
keystone user-role-add\ 
   --user $KEYSTONE_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

# Get the cinder user id
CINDER_USER_ID=$(keystone user-list\
   | awk '/\ cinder \ / {print $2}')

# Assign the cinder user the admin role in service tenant
keystone user-role-add\ 
   --user $CINDER_USER_ID\ 
   --role $ADMIN_ROLE_ID\ 
   --tenant_id $SERVICE_TENANT_ID

工作原理
创建服务租户,然后在其中添加OpenStack运行必需的各个服务的用户,这两步操作和在系统中添加需要admin角色的其他用户没什么不同。为每个拥有admin角色的用户分配用户名和密码,并确保它们存在于服务租户内。然后,使用这些凭证来配置服务OpenStack 的身份认证服务。

相关文章
|
4月前
|
IDE Linux KVM
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
云计算|OpenStack|社区版OpenStack---基本概念科普(kvm的驱动类别和安装)
89 0
|
4月前
|
存储 消息中间件 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
81 0
|
4月前
|
Ubuntu Linux 网络安全
云计算|OpenStack|社区版OpenStack(实务操作---cloud-init的使用)
云计算|OpenStack|社区版OpenStack(实务操作---cloud-init的使用)
142 0
|
4月前
|
云计算 数据安全/隐私保护 虚拟化
云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(十一--- 如何获取镜像---Rocky版)
59 0
|
4月前
|
IDE Linux KVM
云计算|OpenStack|社区版OpenStack安装部署文档(十二--- openstack的网络模型解析---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(十二--- openstack的网络模型解析---Rocky版)
76 0
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器:一款高效、稳定、安全的云计算服务
阿里云服务器ECS和轻量应用服务器有什么区别?轻量和ECS优缺点对比,云服务器ECS是明星级云产品,适合企业专业级的使用场景,轻量应用服务器是在ECS的基础上推出的轻量级云服务器,适合个人开发者单机应用访问量不高的网站博客、云端学习测试环境等,阿里云服务器网从从使用场景、适用人群、计费方式、系统镜像、网络带宽、运维管理等多方面来详细说下二者区别及如何选择
96 1
|
3月前
|
存储 边缘计算 监控
探索未来科技趋势:虚拟化技术与云计算平台OpenStack的概念与实践
在迅猛发展的信息技术时代,企业和组织对于高效、可扩展的计算资源需求日益增长。虚拟化技术和云计算平台OpenStack应运而生,为企业提供了一种灵活、可靠的解决方案。本文将深入探讨虚拟化技术与OpenStack的概念和实践,展示它们在现代科技领域中的重要性和应用前景。
66 3
|
3月前
|
存储 监控 搜索推荐
构建无边界的数字未来:虚拟化技术与云计算平台OpenStack的概念与实践
在当今数字化时代,虚拟化技术和云计算平台已经成为企业和组织实现数字化转型的关键驱动力。本文将介绍虚拟化技术的概念和作用,并重点探讨了开源云计算平台OpenStack在实践中的应用和优势。通过深入了解虚拟化技术和OpenStack平台,读者将能够更好地理解如何利用这些技术构建无边界的数字化未来。
|
3月前
|
存储 人工智能 调度
虚拟化技术与云计算平台 OpenStack:解锁数字化时代的无限潜能
在数字化时代,虚拟化技术和云计算平台已经成为企业和组织加速创新、提高效率的关键工具。本文将介绍虚拟化技术和OpenStack云计算平台的基本概念,探讨其在实践中的应用,以及它们如何协同作用,为企业带来无限的潜能与机会。
|
4月前
|
存储 云计算 虚拟化
云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)
云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)
82 0