目录:
0 实验环境
1 概述
2 安装和配置
2.1 先决条件
2.2 安装和配置
2.3 配置服务
3 验证
0 实验环境
openstack版本:train
实验平台:vmware workstation 15.1
实验虚拟机:centos 7.6,2核,4G内存
操作节点:控制节点
本文涉及的帐号密码:
mysql数据库管理员:root:samplepass
glance数据库用户:glance:gdbpass
glance服务用户:glance:gpass
1 概述
镜像服务(glance)项目提供了一项服务,用户可以在其中上传和发现要与其他服务一起使用的数据资产,当前包括镜像和元数据定义。
Glance映像服务包括发现、注册和检索虚拟机映像。Glance有一个RESTful API,允许查询虚拟机镜像元数据和检索实际映像。
2 安装和配置
本节介绍如何在控制节点上安装和配置glance的映像服务。为简单起见,此配置将镜像存储在本地文件系统上。
2.1 先决条件
在安装和配置镜像服务之前,必须创建数据库、服务凭据和API端点。
a)创建和配置数据库
# mysql -u root -p //连接mysql数据库 MariaDB [(none)]> CREATE DATABASE glance; //新建glance数据库 MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'gdbpass'; //为用户glance本地登录授权,并设置密码为gdbpass MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'gdbpass'; //为用户glance远程登录授权,并设置密码为gdbpass MariaDB [(none)]> quit; //退出
b)为了执行管理员才能使用的命令,引用admin的身份参数:
# . admin-openrc //注意,命令是点,空格,文件名
c)创建服务所需要的身份信息:
# openstack user create --domain default --password-prompt glance //创建用户glance并设置密码
# openstack project create --domain default g_service //添加项目g_service
# openstack role add --project g_service --user glance admin //为g_service项目的glance用户分配admin角色
上条命令没有任何提示,我们可以查看角色分配列表进行查看:
# openstack role assignment list --names
# openstack service create --name glance --description "OpenStack Image" image //创建名称为glance,类型为image的服务,也就是镜像服务
d)创建API端点:
# openstack endpoint create --region RegionOne image public http://controller:9292 //创建公共接口的端点 # openstack endpoint create --region RegionOne image internal http://controller:9292 //创建内部接口的端点 # openstack endpoint create --region RegionOne image admin http://controller:9292 //创建管理接口的端点
查看端点列表,可以看到组件通过端点来提供服务,端点可以理解为某种服务的访问地址:
2.2 安装和配置
a)安装软件包
# yum install openstack-glance
b)编辑配置文件/etc/glance/glance-api.conf:
在[database]节点,配置数据库连接字符串:
在[keystone_authtoken]和[paste_deploy]节点,配置身份认证参数(由于参数太多并且分散,我把参数集中在了各节点的最后部分):
[keystone_authtoken] # ... www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = g_service username = glance password = gpass [paste_deploy] # ... flavor = keystone
图1 keystone_authtoken节点
图2 paste_depley节点
在[glance_store]节点,配置镜像的本地存储方式和存储路径:
[glance_store] # ... stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/
c)初始化glance数据库,成功会有提示信息:
# su -s /bin/sh -c "glance-manage db_sync" glance
2.3 配置服务
# systemctl enable --now openstack-glance-api
3 验证
我们使用一个linux小镜像CirrOS来验证glance服务
a)使用admin环境变量:
# . admin-openrc
b)下载CirrOS镜像文件:
# wget http://download.cirros-cloud.net/0.5.0/cirros-0.5.0-x86_64-disk.img
c)上传镜像文件到镜像服务,使用qcow2文件格式,bare格式的容器,对所有项目可见。
# glance image-create --name "cirros" --file cirros-0.5.0-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public
d)查看镜像列表:
# glance image-list