标签(空测试用例格分隔):OpenStack Train 系列
一:glances 服务组件
1.1 glances 介绍
OpenStack 镜像服务就是 Glance,可以让用户上传、导出、修改、删除虚拟机镜像。另外,openstack 镜像服务支持将镜像文件存储在各种类型的存储
中,如本地文件系统、Openstack 对象存储服务 swift、ceph 等分布式存储中。
OpenStack 镜像服务包括 glance-api、glance-registry 两个子服务。glance-api 对外提供通信接口,与其他服务交互;glance-registry 用于管理存储在硬
盘或 glance 数据库中的对象。
修改好配置后需要重启 openstack-glance-api.service 或 openstack-glance-registry.service
1.2 glances 组件配置
1.2.1 glances 控制节点配置
1、登录数据库创建 glance 数据库
MariaDB (none) > CREATE DATABASE glance default character set utf8;
创建并授予 glance 用户完全操作 glance 库权限
MariaDB (none) > GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'openstack';
MariaDB (none) > GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'openstack';
2、创建用户和 API 服务端点
# source /etc/keystone/admin-openrc.sh
创建 glance 用户,密码设置为:openstack2022
# openstack user create --domain default --password openstack2022 glance
将 glance 加入到 service 项目以及 admin 角色
# openstack role add --project service --user glance admin
创建 glance 服务实体
openstack service create --name glance --description "OpenStack Image" image
创建 Glance 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
1.2.2 安装openstack glances 服务
# yum -y install openstack-glance
修改/etc/glance/glance-api.conf
# cd /etc/glance/ && mv glance-api.conf glance-api.conf.source && cat glance-api.conf.source |grep -Ev "^#|^$" > glance-api.conf && chown root:glance glance-api.conf
# vi /etc/glance/glance-api.conf
在 DEFAULT 部分,增加 rabbitmq 配置
DEFAULT
show_image_direct_url = True
transport_url = rabbit://openstack:openstack@controller
在 database 部分中,配置数据库访问。
database
connection = mysql+pymysql://glance:openstack@controller/glance
在 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 = service
username = glance
password = openstack2022
paste_deploy
flavor = keystone
在该 glance_store 部分,配置镜像使用哪种存储来存储镜像,默认使用文件系统存储,路径为 /var/lib/glance/images/。也支持 swift、ceph、GlusterFS
glance_store
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
修改/etc/glance/glance-registry.conf
# cd /etc/glance/ && mv glance-registry.conf glance-registry.conf.source && cat glance-registry.conf.source |grep -Ev "^#|^$" > glance-registry.conf && chown root:glance glance-registry.conf
# vi /etc/glance/glance-registry.conf
在该 database 部分中,配置数据库访问。
database
connection = mysql+pymysql://glance:openstack@controller/glance
在 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 = service
username = glance
password = openstack2022
paste_deploy
flavor = keystone
4、同步 Glance 数据库
su -s /bin/sh -c "glance-manage db_sync" glance
5、启动 Glance 服务并设置成开机自启动
# systemctl enable openstack-glance-api.service openstack-glance-registry.service && systemctl start openstack-glance-api.service openstack-glance-registry.service
6、验证 Glance 服务
# source /etc/keystone/admin-openrc.sh
下载测试镜像 cirros 上传到 Glance
# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
使用本地 yum 源下载地址
# wget http://yum.ops/yumrepos/cirros-0.4.0-x86_64-disk.img
说明:cirros 是一个裁剪过的镜像,用于 Openstack 故障检测和测试。
上传镜像到 glance。 #
openstack image create "cirros-0.4.0-x86_64" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --public
上传的镜像分私有镜像和公有镜像。私有镜像只有上传者才拥有权限使用;如果要设置成公有镜像,则只需要加上--public 参数即可。
确认上传的镜像和属性。
# openstack image list
或
# glance image-list
# openstack image show ${image_id}
或
# glance image-show ${image_id}
设置镜像为公有镜像
# openstack image set cirros-0.4.0-x86_64 --public
删除镜像
# openstack image delete ${image_name}