3、镜像服务
3.1、创建一个数据库、服务凭证和API端点
3.1.1、完成下面的步骤以创建数据库:
用数据库连接客户端以 root 用户连接到数据库服务器:
# mysql -u root -p
创建 glance 数据库:
CREATE DATABASE glance;
对``glance``数据库授予恰当的权限:
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'P@ssw0rd';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'P@ssw0rd';
flush privileges;
3.1.2、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
# . admin-openrc
3.1.3、创建服务证书
创建 glance 用户:
# openstack user create --domain default --password-prompt glance
添加 admin 角色到 glance 用户和 service 项目上
# openstack role add --project service --user glance admin
创建``glance``服务实体:
# openstack service create --name glance --description "OpenStack Image" image
3.1.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
3.2、安全并配置组件
3.2.1、安装软件包
# yum install openstack-glance -y
3.2.2、编辑文件 /etc/glance/glance-api.conf 并完成如下动作:
在 [database] 部分,配置数据库访问:
connection = mysql+pymysql://glance:P@ssw0rd@controller/glance
在 [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 = P@ssw0rd
注解:在 [keystone_authtoken] 中注释或者删除其他选项
在[paste_deploy] 部分,配置认证服务访问:
flavor = keystone
在 [glance_store] 部分,配置本地文件系统存储和镜像文件位置:
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
注意:这里设置了系统镜像目录,要确认目录是否存在,本次部署如下图所以已经存在且权限清晰。
如不存在就创建目录并赋权:
mkdir /var/lib/glance/images/
chown glance. /var/lib/glance/images/
3.2.3、编辑文件 ``/etc/glance/glance-registry.conf``并完成如下动作:
在 [database] 部分,配置数据库访问:
connection = mysql+pymysql://glance:P@ssw0rd@controller/glance
在 [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 = P@ssw0rd
注解:在 [keystone_authtoken] 中注释或者删除其他选项。
在 [paste_deploy]部分,配置认证服务访问:
flavor = keystone
3.2.4、写入镜像服务数据库:
# su -s /bin/sh -c "glance-manage db_sync" glance
3.3、启动镜像服务、配置他们随机启动
# systemctl enable openstack-glance-api.service openstack-glance-registry.service
# systemctl start openstack-glance-api.service openstack-glance-registry.service
3.4、验证操作(在控制节点上执行这些命令)
3.4.1、获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
# . admin-openrc
3.4.2、下载源镜像
# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
3.4.3、使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它:
# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
如上图所示,镜像上传成功,已经到指定目录:/var/lib/glance/images/
说明:如果没有执行 admin-openrc就会报错,如下图所示:
3.4.4、确认镜像的上传并验证属性:
# openstack image list