Centos7安装部署openstack--glance镜像服务

一、服务概述

  镜像服务 (glance) 允许用户发现、注册和获取虚拟机镜像。它提供了一个 REST API,允许您查询虚拟机镜像的 metadata 并获取一个现存的镜像。您可以将虚拟机镜像存储到各种位置,从简单的文件系统到对象存储系统—-例如 OpenStack 对象存储, 并通过镜像服务使用。

  OpenStack镜像服务是IaaS的核心服务,如同 :ref:`get_started_conceptual_architecture`所示。它接受磁盘镜像或服务器镜像API请求,和来自终端用户或OpenStack计算组件的元数据定义。它也支持包括OpenStack对象存储在内的多种类型仓库上的磁盘镜像或服务器镜像存储。

  大量周期性进程运行于OpenStack镜像服务上以支持缓存。同步复制(Replication)服务保证集群中的一致性和可用性。其它周期性进程包括auditors, updaters, 和 reapers。

  OpenStack镜像服务包括以下组件:

    glance-api:接收镜像API的调用,诸如镜像发现、恢复、存储。
    glance-registry:存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。
  数据库:存放镜像元数据,用户是可以依据个人喜好选择数据库的,多数的部署使用MySQL或SQLite。
  镜像文件的存储仓库:支持多种类型的仓库,它们有普通文件系统、对象存储、RADOS块设备、HTTP、以及亚马逊S3。记住,其中一些仓库仅支持只读方式使用。
  元数据定义服务:通用的API,是用于为厂商,管理员,服务,以及用户自定义元数据。这种元数据可用于不同的资源,例如镜像,工件,卷,配额以及集合。一个定义包括了新属性的键,描述,约束以及可以与之关联的资源的类型。
  警告:glance-registry是私有内部服务,用于服务OpenStack Image服务。不要向用户暴露该服务
二、安装和配置

  准备工作:安装和配置镜像服务之前,你必须创建创建一个数据库、服务凭证和API端点

  1、创建数据库并授权

[root@controller ~]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'  IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'   IDENTIFIED BY 'GLANCE_DBPASS';

  2、创建 glance 用户,添加 admin 角色到 glance 用户和 service 项目上

[root@controller ~]# openstack user create --domain default --password GLANCE_PASS glance
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 73e42b9fc6b64cfdb17940cdf0a0f692 |
| enabled             | True                             |
| id                  | 7a6f6526409c459a980d9b441c6e3575 |
| name                | glance                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@controller ~]# openstack role add --project service --user glance admin

查看命令
[root@controller ~]# openstack project list             
[root@controller ~]# openstack role assignment list
[root@controller ~]# openstack role list
[root@controller ~]# mysql keystone -e "show tables;" |grep role 过滤表,查看是否有个role表

  3、在keystone上创建服务,并注册api

[root@controller ~]# openstack service create --name glance   --description "OpenStack Image" image
[root@controller ~]# openstack endpoint create --region RegionOne   image public http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne   image internal http://controller:9292
[root@controller ~]# openstack endpoint create --region RegionOne   image admin http://controller:9292

  4、安装相应的服务

[root@controller ~]# yum install openstack-glance -y

  5、编辑文件 /etc/glance/glance-api.conf 并完成如下动作

cp /etc/glance/glance-api.conf{,.bak}
grep '^[a-z\[]' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf

[database]                                                               在 [database] 部分,配置数据库访问
...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance

[keystone_authtoken]                                                     在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS                                                   将 GLANCE_PASS 替换为你为认证服务中你为 glance 用户选择的密码。

[paste_deploy]
...
flavor = keystone

[glance_store]                                                           在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置
...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

  6、编辑文件 ``/etc/glance/glance-registry.conf``并完成如下动作

cp /etc/glance/glance-registry.conf{,.bak}                            备份配置文件
grep '^[a-z\[]' /etc/glance/glance-registry.conf.bak >/etc/glance/glance-registry.conf        过滤空格和注释行

[database]                                                               在 [database] 部分,配置数据库访问
...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance     

[keystone_authtoken]                                                     在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS

[paste_deploy]
...
flavor = keystone

  7、数据库同步

[root@controller ~]# su -s /bin/sh -c "glance-manage db_sync" glance
[root@controller ~]# mysql glance -e "show tables;"

  8、启动服务

systemctl enable openstack-glance-api.service  openstack-glance-registry.service               加入自启动项
systemctl start openstack-glance-api.service  openstack-glance-registry.service                批量启动服务

  9、上传一个测试镜像验证服务

     下载地址:http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

[root@controller opt]# openstack image create "cirros"   --file cirros-0.3.4-x86_64-disk.img   --disk-format qcow2 --container-format bare   --public

       

   上传成功!!!

  10、验证,查看镜像位置

      

   11、查看相关信息

[root@controller ~]# openstack image list                                        查看镜像列表
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 6ee7c745-cad8-46a0-ba90-78bbaa3ba1e8 | cirros | active |
+--------------------------------------+--------+--------+
[root@controller ~]# mysql glance -e "show tables;"|grep image                   查看镜像存储的数据库表
image_locations
image_members
image_properties
image_tags
images
[root@controller ~]#

 

posted @ 2020-06-29 16:28  人走茶良  阅读(1043)  评论(0编辑  收藏  举报
推荐:华为云