安装和配置 Image service(镜像服务)glance
1. 创建数据库,完成下列步骤:
A. 使用数据库命令行客户端,以 root 身份登录数据库服务器。
# mysql -u root -p123
B. 创建 glance 数据库
MariaDB [(none)]> CREATE DATABASE glance;
C. 授予数据库用户 glance 访问 glance 数据库的权限。
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’localhost’ IDENTIFIED BY ‘GLANCE_DBPASS’;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’localhost’ IDENTIFIED BY ‘123456’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘GLANCE_DBPASS’;
GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘123456’;
D. 退出数据库
exit
2. 执行 admin 凭据脚本,以便以 admin 身份执行后续命令:
/# . admin-openrc
3. 创建服务凭据,完成下列操作:
A. 创建 glance 用户
/# openstack user create –domain default –password-prompt glance
B. 添加 admin 角色到 glance 用户和 service 项目
/# openstack role add –project service –user glance admin
C. 创建 glance 服务实体:
/# openstack service create –name glance –description “OpenStack Image” image
4. 创建镜像服务 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. 安装软件包
/# yum install openstack-glance –y
2. 编辑/etc/glance/glance-api.conf 文件并完成下列操作:
从这一步开始一定要仔细!!配置错会出问题。error401或error500
A. 在[database]小节,配置数据库访问:
[database]
/# …
connection = mysql+pymysql://glance:123456@controller/glance
B. 在[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 = 123456
[paste_deploy]
/# …
flavor = keystone
替换 GLANCE_DBPASS 为认证服务中 glance 用户的密码。
C. 在[glance_store]小节,配置使用本地系统存储和镜像文件存储路径:
[glance_store]
/# …
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
3. 编辑/etc/glance/glance-registry.conf 文件并完成下列操作:
A. 在[database]小节,配置数据库访问:
[database]
/# …
connection = mysql+pymysql://glance:123456@controller/glance
替换 GLANCE_DBPASS 为你的镜像服务数据库用户 glance 的密码。
B. 在[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 = 123456
[paste_deploy]
/# …
flavor = keystone
替换 GLANCE_DBPASS 为认证服务中 glance 用户的密码。
4. 初始化镜像服务数据库
/# su -s /bin/sh -c “glance-manage db_sync” glance
【图片】
完成安装
启动镜像服务并设置开机自动启动:
/# systemctl enable openstack-glance-api.service openstack-glance-registry.service
/# systemctl start openstack-glance-api.service openstack-glance-registry.service
注意:以前没有时时刻刻要进行服务的检查,所以我在这上面真的吃了不少亏。。。
systemctl status openstack-glance-api.service openstack-glance-registry.service
确认安装
使用 CirrOS 镜像确认镜像服务是否安装正常。CirrOS 是一个小型Linux 镜像,可以用来测试你的 OpenStack 环境。
1. 执行 admin 凭据脚本,以便以 admin 身份执行后续命令:
/# . admin-openrc
2. 下载镜像文件
/# wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img
- 上传镜像文件到镜像服务,使用 QCOW2 磁盘格式,bare 容器格式,添加公共可见选项,是所有项目可以访问该镜像:
/# openstack image create “cirros” –file cirros-0.3.5-x86_64-disk.img –disk-format qcow2 –container-format bare –public
- 确认镜像已经上传并验证属性:
/# openstack image list
疑难小结:
在倒数第二步可能会出现错误:
错误一:
k.img –disk-format qcow2 –container-format bare –public
500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
错误二:
401 Authorization Required
This server could not verify that you are authorized to access the document you requested.
Either you supplied the wrong credentials (e.g,bad password),or your browser doesn’t understand how to supply the credentials required.(HTTP 401)
这两个错误可能是你以前的配置有错误,唯一的方法就是检查以前的错误。改过之后记住要重新初始化数据库,检查一下数据库中有没有表,比如这样,我检查一下glance中的表:
然后重点检查
1./etc/glance/glance-api.conf
2./etc/glance/glance-registry.conf
这两个配置文件。
如果还不对,那就是你的keystone配置的有问题。