glance提供镜像服务使用户能够发现,注册和检索虚拟机镜像。它提供了一个 REST API,可让您查询虚拟机镜像元数据并检索实际镜像。您可以存储镜像在各种位置(从简单的文件系统到像OpenStack Object Storage这样的对象存储系统)。
为了简单起见,这里只是教你如何配置镜像服务,并把镜像保存到controller节点的文件目录里面,此目录为/var/lib/glance/images/。
这一章还是在controller
节点操作。。。
准备
创建数据库
用
root
用户权限执行mysql
1
mysql
创建
glance
数据库1
MariaDB [(none)]> CREATE DATABASE glance;
赋予适合的权限给
glance
数据库1
2
3
4MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
IDENTIFIED BY 'GLANCE_DBPASS';
替换一下GLANCE_DBPASS
为一个合适的密码,后面会用到
创建服务
- 创建
glance
用户1
2
3
4
5
6
7
8
9
10
11
12
13
14openstack user create --domain default --password-prompt glance
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 3f4e777c4062483ab8d9edd7dff829df |
| name | glance |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
这里会提示输入密码,记住这个密码,下面会用到。
加
admin
角色到glance
用户和service
项目1
openstack role add --project service --user glance admin
创建glance服务实体
1
2
3
4
5
6
7
8
9
10
11
12openstack service create --name glance \
--description "OpenStack Image" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image |
| enabled | True |
| id | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
| name | glance |
| type | image |
+-------------+----------------------------------+
创建镜像服务API endpoints
1 | openstack endpoint create --region RegionOne \ |
安装和配置组件
安装包
1 | apt install glance |
修改/etc/glance/glance-api.conf
- 在
[database]
区域,添加数据访问配置1
2
3[database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
替换GLANCE_DBPASS
为前一节创建数据库的那个密码
- 在
[keystone_authtoken]
和[paste_deploy]
区域,配置keystone1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[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 = GLANCE_PASS
[paste_deploy]
# ...
flavor = keystone
替换GLANCE_PASS
为之前你创建glance用户时的密码。
- 在
[glance_store]
区域,配置镜像存储路径。1
2
3
4
5[glance_store]
# ...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
修改/etc/glance/glance-registry.conf
- 在
[database]
区域,添加数据访问配置1
2
3[database]
# ...
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
替换GLANCE_DBPASS
为前一节创建数据库的那个密码
- 在
[keystone_authtoken]
和[paste_deploy]
区域,配置keystone1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[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 = GLANCE_PASS
[paste_deploy]
# ...
flavor = keystone
替换GLANCE_PASS
为之前你创建glance用户时的密码。
初始化镜像服务数据库:
1 | $ su -s /bin/sh -c "glance-manage db_sync" glance |
重启服务
1 | service glance-registry restart |
验证
进入admin
身份
1 | . admin-openrc |
下载测试镜像
1 | wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img |
上传测试镜像到镜像服务
1 | openstack image create "cirros" \ |
确认是否上传成功
1 | openstack image list |