Glance简介
- Glance-api:接受云系统镜像的构建、删除、读取请求
- Glance-Registry:云系统的镜像注册服务
部署在controller节点
配置数据库
MariaDB [(none)]> CREATE DATABASE glance;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
配置Glance服务认证
创建glance用户:
root@controller:~# openstack user create --password-prompt glance
User Password:glance
Repeat User Password:glance
+----------+----------------------------------+
| Field | Value |
+----------+----------------------------------+
| email | None |
| enabled | True |
| id | ddcbca4dd1954923b6fd62f98110242b |
| name | glance |
| username | glance |
+----------+----------------------------------+
将admin角色添加给glance用户和service项目:
root@controller:~# openstack role add --project service --user glance admin
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | 6d814860fbae4b9eb46c5e33835ba2a1 |
| name | admin |
+-------+----------------------------------+
创建glance的服务实体:
root@controller:~# openstack service create --name glance --description "OpenStack Image service" image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image service |
| enabled | True |
| id | d5665f9b2f5645f6aaed5cbf74bad662 |
| name | glance |
| type | image |
+-------------+----------------------------------+
创建镜像服务的API endpoint:
root@controller:~# openstack endpoint create --publicurl http://controller:9292 --internalurl http://controller:9292 --adminurl http://controller:9292 --region RegionOne image
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| adminurl | http://controller:9292 |
| id | b0ab3b1386174c3da615baddeb590d27 |
| internalurl | http://controller:9292 |
| publicurl | http://controller:9292 |
| region | RegionOne |
| service_id | d5665f9b2f5645f6aaed5cbf74bad662 |
| service_name | glance |
| service_type | image |
+--------------+----------------------------------+
安装Glance
root@controller:~# apt-get install glance python-glanceclient
配置Glance
/etc/glance/glance-api.conf :
#[DEFAULT]部分,配置noop禁用通知驱动,因为这是为telemetry测量服务保留的
[DEFAULT]
notification_driver = noop
# [database]部分,配置数据库的连接
[database]
connection = mysql://glance:glance@controller/glance
#[keystone_authtoken]部分,配置身份认证服务访问
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = glance
[paste_deploy]
flavor = keystone
# [glance_store]部分,配置镜像存储采用文件的形式,并且指定存储的路径
[glance_store]
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
/etc/glance/glance-registry.conf:
[DEFAULT]
notification_driver = noop
[database]
connection = mysql://glance:glance@controller/glance
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = glance
[paste_deploy]
flavor = keystone
初始化glance数据库:
root@controller:~# su -s /bin/sh -c "glance-manage db_sync" glance
重启Glance服务:
root@controller:~# service glance-registry restart
glance-registry stop/waiting
glance-registry start/running, process 28498
root@controller:~# service glance-api restart
glance-api stop/waiting
glance-api start/running, process 28526
删除ubuntu默认创建的SQLite数据库:
root@controller:~# rm -f /var/lib/glance/glance.sqlite
制作镜像
root@controller:~# echo "export OS_IMAGE_API_VERSION=2" | tee -a admin-openrc.sh
root@controller:~# source admin-openrc.sh
root@controller:~# wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
使用QCOW2的磁盘格式和bare的容器格式将镜像上传到glance镜像服务中,并且设置为对所有的项目可见:
root@controller:~# glance image-create --name "cirros-0.3.3-x86_64" --file cirros-0.3.3-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public --progress
查看镜像
root@controller:~# glance image-list
+--------------------------------------+---------------------+
| ID | Name |
+--------------------------------------+---------------------+
| 68657969-e3a0-4206-bbc8-cc15ee97daa5 | cirros-0.3.3-x86_64 |
+--------------------------------------+---------------------+
root@controller:~# glance image-show 68657969-e3a0-4206-bbc8-cc15ee97daa5
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum | 133eae9fb1c98f45894a4e60d8736619 |
| container_format | bare |
| created_at | 2019-08-16T09:03:58Z |
| disk_format | qcow2 |
| id | 68657969-e3a0-4206-bbc8-cc15ee97daa5 |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-0.3.3-x86_64 |
| owner | c1d88707e8a04e889d151496421cfb92 |
| protected | False |
| size | 13200896 |
| status | active |
| tags | [] |
| updated_at | 2019-08-16T09:03:58Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+