Advertisement

OpenStack服务运维 OpenStack平台开放镜像权限

阅读量:

目录

1. 规划节点

2. 基础准备

案例实施

1. 场景分析

(1)背景

(2)诉求

(3)解决方案

2. 案例实操

(1)创建租户

(2)上传镜像

(3)权限配置


1. 规划节点

节点规划见表1。

表1 节点规划

IP 主机名 节点
10.24.200.130 controller OpenStack Controller节点

2. 基础准备

基于所选平台,该案例主要目标是实现对不同虚拟机镜像向不同租户开放,从而更有效地进行OpenStack云平台及租户的管理。

案例实施

1. 场景分析

(1)背景

在该OpenStack云平台中,存在两个租户,分别为A租户和B租户,分别隶属于不同的部门。该公司对镜像的管理较为严格,所有镜像均需由管理员进行上传操作及权限配置。所有镜像的上传及权限配置均由管理员完成。

(2)诉求

该公司有一个分发给A租户使用的镜像,对B租户不可见。实现这种方式最简单的方式,是由A租户中的用户自动上传镜像,这样,A租户内的用户即可查看该镜像,而B租户内的用户则无法查看。然而,当前镜像的上传受限于普通用户,只能由管理员进行操作。

(3)解决方案

通过管理员上传该镜像,并使用相关命令开放给A租户。

2. 案例实操

(1)创建租户

首先登录OpenStack平台进行操作,随后创建两个租户,分别为deyA和deyB,接着在每个租户中分别创建一个普通用户userA和userB。通过命令进行查询,具体命令如下:

复制代码
 [root@controller ~]# source /etc/keystone/admin-openrc.sh

    
 [root@controller ~]# openstack project create --domain demo deyA
    
 [root@controller ~]# openstack user create --domain demo  --password 123456 userA
    
 [root@controller ~]# openstack role add --project deyA --user userA user
    
 [root@controller ~]# openstack project create --domain demo deyB
    
 [root@controller ~]# openstack user create --domain demo  --password 123456 userB
    
 [root@controller ~]# openstack role add --project deyB --user userB user
    
    
    
    
    AI助手

使用命令查询租户列表信息和用户列表信息,命令代码如下所示:

复制代码
 [root@controller ~]# source /etc/keystone/admin-openrc.sh

    
 [root@controller ~]# openstack project list
    
 +----------------------------------+---------+
    
|ID|Name|

    
 +----------------------------------+---------+
    
|0dd87985eb314fed828e6888aed4880d|demo|

    
|525075abb84e4e088dfe3adc4da61e72|depB|

    
|55b50cbb4dd4459b873cb15a8b03db43|admin|

    
|a184a157399043c2a40abc52df0459a2|service|

    
|df58511d2c914690b48e89f1e512ae6b|depA|

    
 +----------------------------------+---------+
    
 [root@controller ~]# openstack user list
    
 +----------------------------------+-------------------+
    
|ID|Name|

    
 +----------------------------------+-------------------+
    
|0f8782af6a654d77b587e25a32f91f28|cinder|

    
|1ab30f77400448eba6b2d47e55084540|demo|

    
|2550fa93b1fe4cb582f1f46353b836d8|ceilometer|

    
|2d2a345336184b1ebbdf022f710084e8|neutron|

    
|48b816f9db9541b4bd9ca49ad453574c|glance|

    
|4c989a43a75c477bb4f9b7566cde6028|userA|

    
|765a16c99d7d42a4b69ff941f7791b54|aodh|

    
|788efa329f324b91a431ad56cd7b9a14|nova|

    
|7ecae98d16d54483b964c9c2548fd7bc|swift|

    
|8a33fc3342154a3ca264ae7b918648ba|userB|

    
|962612a3e7784df38d0c98fea1f30320|heat|

    
|9ee4731c00c24f659b8790be6b77bc8a|admin|

    
|d6fdd1e5e1a348e0b6c5b8c7f33ba5fa|placement|

    
|d957a578fed2452ab91bc651f2f1fb97|heat_domain_admin|

    
|e91070fa751e49689963b566db999bee|gnocchi|

    
 +----------------------------------+-------------------+
    
    
    
    
    AI助手

可以看见租户与用户均已存在

(2)上传镜像

为了获取cirros-0.3.4-x86_64-disk.img文件并将其上传至云平台,操作步骤如下:首先,将该文件下载至控制节点的根目录下,随后通过指定的上传路径将其提交至云平台中。具体操作命令如下:

复制代码
 [root@controller ~]# curl -O  http://mirrors.douxuedu.com/competition/cirros-0.3.4-x86_64-disk.img

    
 [root@controller ~]# glance image-create --name cirros --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img 
    
 [=============================>] 100%
    
 +------------------+--------------------------------------+
    
|Property|Value|

    
 +------------------+--------------------------------------+
    
|checksum|ee1eca47dc88f4879d8a229cc70a07c6|

    
|container_format|bare|

    
|created_at|2022-02-10T05:31:48Z|

    
|disk_format|qcow2|

    
|id|1fa9cbfe-392f-437e-ad18-f00987415b15|

    
|min_disk|0|

    
|min_ram|0|

    
|name|cirros|

    
|owner|55b50cbb4dd4459b873cb15a8b03db43|

    
|protected|False|

    
|size|13287936|

    
|status|active|

    
|tags|[]|

    
|updated_at|2022-02-10T05:31:49Z|

    
|virtual_size|None|

    
|visibility|shared|

    
 +------------------+--------------------------------------+
    
    
    
    
    AI助手

在上传镜像后,用户A和用户B均无法访问该镜像。随后,进行相关配置,使得在A租户环境中,用户能够访问该镜像。

(3)权限配置

首先,将镜像分配给A租户。命令格式如下所示:glance member-create

复制代码
 [root@controller ~]# glance member-create 1fa9cbfe-392f-437e-ad18-f00987415b15 df58511d2c914690b48e89f1e512ae6b

    
 +--------------------------------------+----------------------------------+---------+
    
|Image ID|Member ID|Status|

    
 +--------------------------------------+----------------------------------+---------+
    
|1fa9cbfe-392f-437e-ad18-f00987415b15|df58511d2c914690b48e89f1e512ae6b|pending|

    
 +--------------------------------------+----------------------------------+---------+
    
    
    
    
    AI助手

在共享之后,镜像的状态是pending状态,此时还需要激活镜像,命令如下 :

复制代码
 [root@openstack ~]# glance member-update 1fa9cbfe-392f-437e-ad18-f00987415b15 df58511d2c914690b48e89f1e512ae6b accepted

    
 +--------------------------------------+----------------------------------+----------+
    
|Image ID|Member ID|Status|

    
 +--------------------------------------+----------------------------------+----------+
    
|1fa9cbfe-392f-437e-ad18-f00987415b15|df58511d2c914690b48e89f1e512ae6b|accepted|

    
 +--------------------------------------+----------------------------------+----------+
    
    
    
    
    AI助手

当前镜像状态已成功转换为‘accepted’状态。转至userA账户,以便访问镜像列表信息。具体操作命令如下:

复制代码
 [root@controller ~]# export OS_PROJECT_NAME=deyA

    
 [root@controller ~]# export OS_USERNAME=userA
    
 [root@controller ~]# export OS_PASSWORD=123456
    
 [root@controller ~]# glance image-list
    
 +--------------------------------------+--------+
    
|ID|Name|

    
 +--------------------------------------+--------+
    
|1fa9cbfe-392f-437e-ad18-f00987415b15|cirros|

    
 +--------------------------------------+--------+
    
    
    
    
    AI助手

通过这种方式,可以使用管理员设置不同租户对不同镜像的访问权限。

全部评论 (0)

还没有任何评论哟~