一、准备工作
- 用数据库连接客户端以 root 用户连接到数据库服务器
controller ~# mysql -u root -p
- 创建 glance 数据库
MariaDB [(none)]> CREATE DATABASE glance;
- 对
glance
数据库授予权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance. TO ‘glance’@’localhost’ IDENTIFIED BY ‘1111’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance. TO ‘glance’@’%’ IDENTIFIED BY ‘1111’;
- 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
controller ~# . admin-openrc.sh
- 创建服务证书,创建 glance 用户:
controller ~# openstack user create —domain default —password-prompt glance
- 添加 admin 角色到 glance 用户和 service 项目上。
controller ~# openstack role add —project service —user glance admin
- 创建
glance
服务实体:
controller ~# openstack service create —name glance —description “OpenStack Image” image
- 创建镜像服务的 API 端点:
controller ~# openstack endpoint create —region RegionOne image public http://controller:9292
controller ~# openstack endpoint create —region RegionOne image internal http://controller:9292
controller ~# openstack endpoint create —region RegionOne image admin http://controller:9292
二、安装并配置组件
- 安装软件包
controller ~# yum -y install openstack-glance
- 编辑文件 /etc/glance/glance-api.conf 并完成如下操作
controller ~# vim /etc/glance/glance-api.conf
- 在 [database] 部分,配置数据库访问:
[database]
# …
connection = mysql+pymysql://glance:1111@controller/glance
- 在 [keystone_authtoken] 部分,配置认证服务访问:
[keystone_authtoken]
# …
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 = 1111
- 在[paste_deploy]中设置认证方式。
[paste_deploy]
# …
flavor = keystone
- 在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:
[glance_store]
# …
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
- 编辑文件
/etc/glance/glance-registry.conf
并完成如下动作:
controller ~# vim /etc/glance/glance-registry.conf
- 在 [database] 部分,配置数据库访问:
[database]
# …
connection = mysql+pymysql://glance:1111@controller/glance
- 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置认证服务访问:
[keystone_authtoken]
# …
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 = 1111
[paste_deploy]
# …
flavor = keystone
- 写入镜像服务数据库:
controller ~# su -s /bin/sh -c “glance-manage db_sync” glance
- 忽略此输出中的任何弃用消息。
- 启动镜像服务、配置他们随机启动:
controller ~# systemctl enable openstack-glance-api.service openstack-glance-registry.service
controller ~# systemctl start openstack-glance-api.service openstack-glance-registry.service
三、操作验证
- 获得 admin 凭证来获取只有管理员能执行的命令的访问权限
controller ~# . admin-openrc.sh
- 下载源镜像
controller ~# wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
- 使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
controller ~# openstack image create “cirros” —file cirros-0.3.5-x86_64-disk.img —disk-format qcow2 —container-format bare —public
- 确认镜像的上传并验证属性
controller ~# openstack image list