问题报错:
glance在上传镜像文件时产生:HTTPInternalServerError (HTTP 500)的错误。
分析原因&&问题解决:
glance服务在进行上传镜像文件前,需要控制数据库,并同步数据库。同时为了进行镜像服务,需要编辑配置文件。
一. 配置数据库
- 创建数据库
mysql -u root -popenstack
create database glance;
- 创建glance用户
grant all privileges on glance.* to 'glance'@'localhost' identified by 'openstack';
grant all privileges on glance.* to 'glance'@'%' identified by 'openstack';
二、配置镜像服务
- 编辑/etc/glance/glance-registry.conf 配置文件,在[DEFAULT]下加入以下内容:
rabbit_host=localhost
rabbit_port=5672
rabbit_use_ssl=false
rabbit_userid=guest
rabbit_password=guest
rabbit_virtual_host=/
rabbit_notification_exchange=glance
rabbit_notification_topic=notifications
rabbit_durable_queues=false`
- 重新启动glance-registry 和 glance-api 服务
sudo restart glance-registry
sudo restart glance-api
- 同步数据库,并不允许glance 服务控制数据库版本
sudo glance-manage db_sync
sudo glance-manage db_version_control 0
- 如果在执行过程中,出现以下错误,则编辑 /etc/mysql/my.cnf 配置文件,往 [mysqld] 字段添加如下内容
glance ValueError: Tables “migrate_version” have non utf8 collation,
please make sure all tables are CHARSET=utf8
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
然后登录glance database用下面的语句来改变表的charset属性
alter table migrate_version convert to character set 'utf8';
- 注意注意!!
如有上述错误产生,需要在进行第四步之后重新进行第三步。这样在同步数据库之后,即可解决在上传镜像文件时产生的(HTTP500)问题。