当前位置:   article > 正文

云计算职业技能大赛组件介绍(二)_openstack私有云平台,修改普通用户权限,使普通用户不能对镜像进行创建和删除操作

openstack私有云平台,修改普通用户权限,使普通用户不能对镜像进行创建和删除操作

云计算职业技能大赛组件介绍(二)

上文我们粗略的了解了open stack有哪些组件,具体是什么功能,接下来,我将带大家详细的了解一下keystone组件和glance组件的基础原理和基础运维样题。

一、Keystone组件

keyston组件功能

项目名称keystone,服务名称identify server,及身份认证服务。keystone为所有openstack组件提供认证和访问策略访问,它依赖自身REST(基于idntity API)系统进行工作,主要对(但不限于)Swift(对象存储)、Glance(镜像服务)、Nova(计算服务)等进行认证与授权。实际上,授权通过对动作消息来源者请求的合法性进行鉴定。

keystone相关概念:

名称说明
user一个普通用户或者系统服务在OpenStack中的数字表示。用于身份认证,也能够通过为登录到Openstack的用户分配令牌环,以此获得访问资源的权限,同一个用户可以背关联到给若干个租户,就像用户可以隶属若干个不同的组。 用户通过认证信息,如密码、API keys等进行验证 。
Tenant一个资源或对象的抽象表示,租户可以包含多个用户,不同租户之间相互隔离,根据service运行的需求,租户可以映射为账户、组织、项目或服务 。
Project(项目)是各个服务中的一些可以访问的资源集合,用来分组或隔离资源或身份对象。
Role可定制化的包含有特定用户权限的权限集合,这些资源包含虚拟机、镜像、存储资源等。同时可以关联到若干个User-Tenant对,来为User-Tenant对赋予权限。 用户既可以被添加到全局的角色,也可以被添加到指定项目内的角色中。其区别是,全局的角色适用于所有项目中的资源权限,而项目内的角色只适用于某个项目内的资源权限。
Token(令牌)用于限定User-Tenant对进行OpenStack API和资源访问的字符串表示。一个令牌会持续一段时间有效,也可以随时撤销。在keystone中主要是引入令牌机制来保护用户对资源的访问。
Credentials(凭证)用于确认用户身份的数据,例如:Username/Password 。
Authentication(校验)是确定用户身份的过程。
Service(服务)OpenStack service,即OpenStack运行的组件服务 。
Keystone Client(keystone cli)keystone的命令行工具,可以完成诸如创建用户、角色、服务和端点等大多数得leystone管理功能,是非常常用得CLI接口。
Endpoint(端点)一个可以通过网络来访问和定位某个OpenStack service得地址,通常是一个URL。简单得说,就是入口。在keystone中包含一个端点模板,这个模板提供了所有已存在的服务的端点信息。

keystone工作流程:

在这里插入图片描述

  • 用户/API 想创建一个实例,首先会将自己的credentials(资格证书)发给keystone。认证成功后,keystone会颁给用户/API一个临时的令牌(Token)和一个访问服务的Endpoint。 PS:Token没有永久的 。
  • 用户/API 把临时Token提交给keystone,keystone并返回一个Tenant(Project)
  • 用户/API 向keystone发送带有特定租户的凭证,告诉keystone用户/API在哪个项目中,keystone收到请求后,会发送一个项目的token到用户/API PS:第一个Token是来验证用户/API是否有权限与keystone通信,第二个Token是来验证用户/API是否有权限访问我keystone的其它服务。用户/API 拿着token和Endpoint找到可访问服务
  • 服务向keystone进行认证,Token是否合法,它允许访问使用该服务(判断用户/API中role权限)
  • keystone向服务提供额外的信息。用户/API是允许方法服务,这个Token匹配请求,这个Token是用户/API的
  • 服务执行用户/API发起的请求,创建实例
  • 服务会将状态报告给用户/API。最后返回结果,实例已经创建。

二、Keyston运维样题

Keystone例题一

1.使用自行搭建的OpenStack私有云平台,修改普通用户权限,使普通用户不能对镜像进行创建和删除操作。

vim /etc/glance/policy.json
add_image: role:admin
delete_image: role:admin
  • 1
  • 2
  • 3

解析:每一个组件下都有一个policy.json文件,例如上一步操作,add_image: role:admin表示,允许角色为admin的用户创建镜像,翻过来理解,只能允许admin角色创建,普通用户就不可以了。或者写role: not_user,表示不允许普通用户创建。(严谨格式可参考其余配置文件或官网)。

Keystone例题二

2.创建用户testuser,密码为xiandian,将 testuser 用户分配给 admin 项目,赋予用户 admin 的权限。

openstack user create testuser --password xiandian --project admin --role admin
  • 1

解析:使用open stack命令,user模块,动作 create,–password表示密码,–project 表示项目 --role表示用户角色。open stack帮助手册可使用open stack user --help查看。创建用户也可以使用keystone提供的cli,使用user --help查询命令手册。

三、Glance组件

Glance组件功能

  1. Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。
  2. Glance服务提供了一个REST API,使你能够查询虚拟机镜像元数据和检索的实际镜像。
  3. 通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。
  4. 提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板

GLance镜像状态

  1. Queued:初始化镜像状态,在镜像文件刚刚被创建,在glance数据库中已经保存了镜像标示符,但还没有上传至glance中,此时的glance对镜像数据没有任何描述,其存储空间为0。
  2. Saving:镜像的原始数据在上传中的一种过度状态,它产生在镜像数据上传至glance的过程中,一般来讲,glance收到一个image请求后,才将镜像上传给glance。
  3. Active:镜像成功上传完毕以后的一种状态,它表明glance中可用的镜像。
  4. Killed:镜像上传失败或者镜像文件不可读的情况下,glance将镜像状态设置成Killed。
  5. Deleted:镜像文件马上会被删除,只是当前glance这种仍然保留该镜像文件的相关信息和原始镜像数据。
  6. Pending_delete:镜像文件马上会被删除,镜像文件不能恢复。

在这里插入图片描述

Glance镜像格式

  1. RAW:RAW即常说的裸格式,它其实就是没有格式,最大的特点就是简单,数据写入什么就是什么,不做任何修饰,所以再性能方面很不错,甚至不需要启动这个镜像的虚拟机,只需要文件挂载即可直接读写内部数据。并且由于RAW格式简单,因此RAW和其他格式之间的转换也更容易。在KVM的虚拟化环境下,有很多使用RAW格式的虚拟机。
  2. QCOW2:它是QEMU的CopyOn Write特性的磁盘格式,主要特性是磁盘文件大小可以随着数据的增长而增长。譬如创建一个10GB的虚拟机,实际虚拟机内部只用了5GB,那么初始的qcow2磁盘文件大小就是5GB。与RAW相比,使用这种格式可以节省一部分空间资源。
  3. VHD:VHD也是一种通用的磁盘格式。微软公司的Virtual PC和Hyper-V使用的就是VHD格式。VirtualBox也提供了对VHD的支持。如果要在OpenStack上使用Hyper-V的虚拟化,就应该上传VHD格式的镜像文件。
  4. VMDK:VMware创建的一个虚拟机磁盘格式,目前也是一个开放的通用格式,除了VMware自家的产品外,QEMU和VirtualBox也提供了对VMDK格式的支持。
  5. VDI:Oracle公司的VirtualBox虚拟软件所使用的格式。
  6. ISO:ISO是指一种存档数据文件在光盘上的格式。
  7. AKI、ARI、AMI:Amazon公司的AWS所使用的镜像格式。

Glance架构

在这里插入图片描述

  1. Glance-api:接收REST API的请求,然后通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作,默认监听端口9292。
  2. Glance-registry:用于与MariaDB数据库交互,用于存储或获取镜像的元数据(metadata),默认监听端口9191。
  3. Store Adapter:通过提供的存储接口来获取镜像
  4. Database:Image的metadata会保持到database中,主要使用MySQL和SQLite**。**

配置文件

  1. Glance-api.conf :Glance api 服务配置文件。
    (1)Glance服务安装的日志和调试信息,例如:debug、日志文件路径log_file等参数。
    (2)Glance服务的API服务器的相关信息。例如:服务绑定的IP地址、端口bind_port等参数
    (3)Registry服务的相关信息,例如:Registry服务的网络地址、监听的端口号、glance与Registry间通信的协议等。
    (4)系统消息相关参数,该部分主要配置glance与系统消息的收发。消息队列rabbitmq的IP地址、监听端口等参数
    (5)镜像后端存储的相关配置,一般情况下,glance-api.config中包含普通文件存储、swift、S3、RBD等较为常见的存储设备的信息配置。

​ 2. Glance-registry.conf :Glanceregistry服务配置文件,用户存储镜像有关的元数据。

​ 3. glance-scrubber.conf :用于清理已删除的镜像的服务。

​ 4. policy.json :镜像服务的访问控制。在这里,我们可以定义角色和策略,是OpenStack Glance中的安全特性。

工作流程图

在这里插入图片描述

四、Glance运维样题

Glance例题一

1.使用命令将提供的CentOS_7.5_x86_64_XD.qcow2镜像上传至平台,命名为centos7.5-1804。

openstack image create centos7.5-1804 --disk-formate qcow2 --file /opt/CentOS_7.5_x86_64_XD.qcow2 #课通过仪表盘操作
  • 1

解析:此处上传镜像并执行相关操作属于基本操作,在web页面也依然可以执行相关操作

Glance例题二

2.创建一台云主机(镜像使用 CentOS7.5,flavor使用带临时磁盘 50G 的),配置该主机为 nfs 的 server 端,将该云主机中的/mnt/test 目录进行共享(目录不存在可自行创建)。然后配置 controller 节点为 nfs 的 client 端,要求将/mnt/test目录作为 glance 后端存储的挂载目录。

所有节点均关掉Firewalld和Selinux

#nfs_server and controller
yum install nfs-utils rpcbind -y

#nfs_server
vim /etc/exports
/mnt/test  172.128.11.0/24(rw,no_root_squash,sync)  设置共享目录#此处IP为controllerIP
exportfs -r
systemctl start rpcbind && systemctl enable rpcbind
systemctl start nfs && systemctl enable nfs

#nfs_server and controller 
showmount  -e  172.128.13   #查看共享情况 此处IP为nfs_serverIP

#controller
mount -t  nfs  172.128.13:/mnt/test     /var/lib/glance/images   #共享挂载此处IP为nfs_serverIP
chown  glance:glance  /var/lib/glance/images  #设置用户组
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/77763?site
推荐阅读
相关标签
  

闽ICP备14008679号