默认镜像存储目录为: /var/lib/glance/images/
controller节点
mysql -u root -p123456
#创建库
CREATE DATABASE glance;
#授权用户本地登录并设置密码(这里的密码设置:123)
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123';
#授权用户远程登录并设置密码(这里的密码设置:123)
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123';
#查看当下的数据库
show databases;
select user,host from mysql.user;
创建认证账号
为glance创建用户、授权、创建glance服务、创建url访问地址,其目的是让openstack可以识别glance身份
切换到admin用户,创建glance用户。
之前使用的脚本切换,直接source即可;
source admin-openrc
openstack user create --domain default --password-prompt glance
密码:123
#查看用户列表
openstack user list
将glance用户添加到service项目中拥有admin权限
openstack role add --project service --user glance admin
创建一个service服务(供其他服务访问)名称为glance,类型为image
openstack service create --name glance --description "OpenStack Image" image
创建glance服务API端点
API端点是OpenStack中提供给客户或者与其他核心服务之间的交互的入口,而glance服务的api端点用于接受请求,响应镜像查询,获取和存储的调用.
OpenStack使用三种API端点代表三种服务:admin、internal、 public
admin:管理员访问的API端点
internal:内部服务访问的API端点
public: 可以被所有项目访问的API端点
#创建public端点
openstack endpoint create --region RegionOne image public http://controller:9292
#创建internal端点
openstack endpoint create --region RegionOne image internal http://controller:9292
#创建admin端点
openstack endpoint create --region RegionOne image admin http://controller:9292
打开的端口虽然都是9292,但是在服务进行交互过程中是通过keystone进行身份验证的,不用担心会定义服务。
#通过openstack endpoint list查看端点
openstck endpoint list
glance服务安装和配置
yum -y install openstack-glance
#查看文件属性
ll /etc/glance/glance-api.conf
#提前备份配置文件
cp /etc/glance/glance-api.conf{,.bak}
#重新生成配置文件
egrep -v '^#|^$' /etc/glance/glance-api.conf.bak >/etc/glance/glance-api.conf
#查看文件属性
ll /etc/glance/glance-api.conf
修改glance文件,对接mysql,对接keystone,配置文件:/etc/glance/glance-api.conf
保证/etc/glance/glance-api.conf的属组是glance
#修改文件内容
vim /etc/glance/glance-api.conf
#访问glance数据库使用的用户及密码:123
[database]
connection = mysql+pymysql://glance:123@controller/glance
#glance找keystone需要做验证,配置keystone认证信息
[keystone_authtoken]
#指定keystone的api,到此url去认证
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
#指定memcache的地址
memcached_servers = controller:11211
#指定身份验证方式为password密码验证方式
auth_type = password
#指定项目所在的域Default
project_domain_name = Default
#指定用户所在的域Default
user_domain_name = Default
#指定项目名称service
project_name = service
#指定认证用户是glance
username = glance
#指定用户密码
password = 123
#指定提供认证的服务为keystone
[paste_deploy]
flavor = keystone
#指定存储
[glance_store]
#file:文件方式,http:基于api调用的方式,把镜像放到其他存储上
stores = file,http
#存储类型默认
default_store = file
#指定镜像存放目录
filesystem_store_datadir = /var/lib/glance/images/
初始化glance数据库,生成相关表结构
su -s /bin/sh -c "glance-manage db_sync" glance
查看数据库表结构
mysql -u glance -p123
use glance;
show tables;
systemctl enable openstack-glance-api.service && systemctl start openstack-glance-api.service
netstat -natp | grep 9292
服务验证
使用CirrOS(一个小型Linux镜像(13M大小),可帮助您测试OpenStack部署)验证Image Service的运行
source admin-openrc
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
glance image-create --name "cirros" --file cirros-0.4.0-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public
openstack image create "cirros" \ --创建的镜像名--fifile cirros-0.3.5-x86_64-disk.img \ --创建镜像所需文件,当前目录,或带文件位置--disk-format qcow2 \ --镜像格式 qcow2(注意镜像格式!)--container-format bare \ --可以接受的镜像容器格式包含:ami,ari, aki, bare, and ovf--public --共享此镜像,所有用户可见
查看镜像方式
openstack image list