接上两篇安装,上面已经完成了stein最小安装的控制、计算节点软件安装,数据库配置及keystone安装,如果你上面的步骤完全正确,通过openstack token issue进行验证,如果可以正常通过用户名密码获取token就说明安装成功了,要注意的是需要首先编辑好用户环境文件,要么将环境文件置为可执行,在执行openstack命令前先执行用户环境文件,要么通过source 环境文件来将用户认证信息导入环境变量,否则你在执行openstack命令时就要在命令行中写入认证url及用户名密码信息。

一、glance用户及服务在openstack中安装流程

1、在default域创建glance用户,密码glance

openstack user create --domain default --password-prompt glance

2、将admin的角色赋予glance用户让它可以访问service项目
openstack role add --project service --user glance admin

3、注册类型为image的glance项目
openstack service create --name glance --description "OpenStack Image" image

4、在service项目中添加glance服务的三个服务端点,这一步在后面的每个组件需要做

上面步骤有因果关系,必须按照步骤执行。
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

openstack中的endpoint是_ci

二、修改glance配置文件

glance对外进行组件间通信暴露的接口通过glance-api插件实现,其它openstack组件只与glance-api通信。

1、修改glance-api配置文件

vi /etc/glance/glance-api.conf
 [database]
 connection = mysql+pymysql://glance:glance@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 = glance[paste_deploy]
 flavor = keystone[glance_store]
 stores = file,http
 default_store = file
filesystem_store_datadir = /var/lib/glance/images/

2、修改glance-registry配置文件

vi /etc/glance/glance-registry.conf 
 [database]
 connection = mysql+pymysql://glance:glance@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 = glance[paste_deploy]
 flavor = keystone

三、同步glance数据库表信息

su -s /bin/sh -c "glance-manage db_sync" glance

openstack中的endpoint是_ci_02

验证glance数据库表同步是否成功

mysql -u glance -pglance -e"use glance;show tables;"

如果看到下面内容就恭喜你,glance数据库表同步成功了,注意与keystone同步一样,一定要完整复制同步命令,不要直接执行glance-manage db_sync,因为权限问题会让你的数据库同步失败。

openstack中的endpoint是_ci_03

四、启动glance服务并将glance服务设置为开机自动启动

systemctl enable openstack-glance-api.service   openstack-glance-registry.service
 systemctl start openstack-glance-api.service   openstack-glance-registry.service

五、下载镜像文件并上传到glance管理镜像验证glance安装效果

wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

这个镜像的用户名和密码,OpenStack测试非常喜欢使用的镜像,小于15M,但是下载起来由于众所周知的原因特别慢。。。

user:cirros
pass:cubswin:)

openstack中的endpoint是_ci_04

使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:

$ openstack image create "cirros" \
  --file cirros-0.3.4-x86_64-disk.img \
  --disk-format qcow2 --container-format bare \
  --public

openstack中的endpoint是_ci_05

如果上一步出现了问题,有可能是使用了http_proxy,必须要unset http_proxy,否则即使source admin环境变量也会出现认证错误。

确认镜像的上传并验证属性:

$ openstack image list

openstack中的endpoint是_ci_06

ls -la /var/lib/glance/images/

因为上面在glance-api配置文件中glance保存位置在/var/lib/glance/images下,所以查看这个位置可以发现镜像的文件名就是镜像ID。

总结:

    安装glance主要注意有两个组件需要单独配置,一个是glance-api,一个是glance-registry,这两个配置文件在数据库与keystone两个配置项下面的内容完全一样,区别是api下面需要写明glance镜像具体保存采用什么类型,本文为了方便直接以文件的形式保存在本地,项目中需要首先安装swift或ceph等对象存储后再配置glance保存位置。