• 创建并设置glance的数据库
mysql -u root -p

MariaDB [(none)]> CREATE DATABASE glance;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
  IDENTIFIED BY 'xxxxxxx';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
  IDENTIFIED BY 'xxxxxxx';
  • 创建glance镜像服务的keystone相关认证信息

    • 用户密码:glance:xxxxxxx
# 设置环境变量
. admin-openrc
# 创建glance用户
openstack user create --domain default --password-prompt glance
# 将glance用户加入service项目,并设置为amdin角色
openstack role add --project service --user glance admin
# 创建名为glance的服务
openstack service create --name glance \
  --description "OpenStack Image" image
  • 创建镜像的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
  • 安装glance服务
yum install openstack-glance -y
  • 配置api
vim /etc/glance/glance-api.conf

[database]
# ...
connection = mysql+pymysql://glance:xxxxxxx@controller/glance

[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 = xxxxxxx

[paste_deploy]
# ...
flavor = keystone

[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
  • 同步图像服务数据库
su -s /bin/sh -c "glance-manage db_sync" glance
  • 开机自启和启动服务
systemctl enable openstack-glance-api.service
systemctl start openstack-glance-api.service
  • 验证
# 下载图像
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

# 上传到image服务
glance image-create --name "cirros" \
  --file cirros-0.4.0-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --visibility=public

# 确定上传图片以及验证属性
glance image-list