zoukankan      html  css  js  c++  java
  • 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 ~]#
  • 相关阅读:
    (七)四种常见的post请求中的参数形式
    (六)获取http状态码和处理返回结果
    (五)application/x-www-form-urlencoded(表单请求)
    (四)进行HTTPS请求并进行(或不进行)证书校验(示例)
    (三)解决httpclient乱码
    (二)HttpClient Post请求
    (一)HttpClient Get请求
    (十一)Maven之profile实现多环境配置动态切换
    (四)带图片和附件的复杂邮件发送
    (三)JavaMail发送附件
  • 原文地址:https://www.cnblogs.com/aqicheng/p/13208630.html
Copyright © 2011-2022 走看看