部署Openstack-镜像服务 Image Service

Image Service

本文介绍在controller节点上安装、配置Image服务 glance,镜像存储在本地文件系统

安装准备

controller 节点 ip:192.168.1.101

1、首先创建数据库、service credentialsAPI endpoints

$ mysql -uroot -p
  mysql> create database glance;
  mysql> grant all privileges on glance.* to 'glance'@'localhost' \
  identified by '123456' with grant option;
  mysql> grant all privileges on glance.* to 'glance'@'%' \
  identified by '123456' with grant option;
  mysql> exit;

2、切换到admin用户环境以使用admin-only CLI命令

$ source admin-openrc

3、建立service credentials

  • 创建glance用户
$ openstack user create --domain default --password-prompt glance
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 3f4e777c4062483ab8d9edd7dff829df |
| name                | glance                           |
| password_expires_at | None                             |
+---------------------+----------------------------------+
  • glance用户和service项目添加admin角色
$ openstack role add --project service --user glance admin

此命令运行后无输出

  • 创建glance服务入口
$ openstack service create --name glance \
--description "OpenStack Image" image
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Image                  |
| enabled     | True                             |
| id          | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
| name        | glance                           |
| type        | image                            |
+-------------+----------------------------------+

4、创建image service API endpoints

$ openstack endpoint create --region RegionOne \
image public http://192.168.1.101:9292

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 340be3625e9b4239a6415d034e98aace |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://192.168.1.101:9292        |
+--------------+----------------------------------+

$ openstack endpoint --region RegionOne \
image internal http://192.168.1.101:9292

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | a6e4b153c2ae4c919eccfdbb7dceb5d2 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://192.168.1.101:9292        |
+--------------+----------------------------------+

$ openstack endpoint create --region RegionOne \
image admin http://192.168.1.101:9292

+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 0c37ed58103f4300a84ff125a539032d |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | 8c2c7f1b9b5049ea9e63757b5533e6d2 |
| service_name | glance                           |
| service_type | image                            |
| url          | http://192.168.1.101:9292           |
+--------------+----------------------------------+

安装及配置组件

1、安装

# yum install openstack-glance

2、编辑/etc/glance/glance-api.conf,加如下内容:

[database]
...
connection = mysql+pymysql://glance:123456@192.168.1.101/glance

[keystone_authtoken]
...
auth_uri = http://192.168.1.101:5000
auth_url = http://192.168.1.101:35357
memcached_servers = 192.168.1.101:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = 123456

[paste_deploy]
...
flavor = keystone

[glance_store]
...
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

修改完成后,可用如下命令检查配置文件与上述内容相符:
$ cat /etc/glance/glance-api.conf | grep -v ^# | grep -v ^$

3、编辑/etc/glance/glance-registry.conf,加如下内容:

[database]
...
connection = mysql+pymysql://glance:123456@192.168.1.101/glance

[keystone_authtoken]
...
auth_uri = http://192.168.1.101:5000
auth_url = http://192.168.1.101:35357
memcached_servers = 192.168.1.101:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = 123456

[paste_deploy]
...
flavor = keystone

修改完成后,可用如下命令检查配置文件与上述内容相符:
$ cat /etc/glance/glance-registry.conf | grep -v ^# | grep -v ^$

4、生成image service数据库

# su -s /bin/sh -c "glance-manage db_sync" glance

此处可忽略该命令输出的deprecation messages

完成安装

  • 设置开机自动运行并启动image services
# systemctl enable openstack-glance-api.service \
openstack-glance-registry.service
# systemctl start openstack-glance-api.service \
openstack-glance-registry.service

上述服务启动后,可如下验证:
$ ss -lnp|grep 9292
tcp LISTEN 0 128 *:9292 :
users:(("glance-api",pid=10926,fd=4),("glance-api",pid=10878,fd=4))
$ ss -lnp|grep 9191
tcp LISTEN 0 128 *:9191 :
users:(("glance-registry",pid=10914,fd=4),("glance-registry",pid=10874,
fd=4))

验证

在controller节点进行验证

1、切换到admin用户环境以使用admin-only CLI命令

$ source admin-openrc

2、下载测试用image

$ wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

3、将cirros镜像上传到镜像服务,镜像文件指定QCOW2格式、bare容器格式,public可见让所有projects都可访问到

$ openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img \
--disk-format qcow2 --container-format bare --public

+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6                     |
| container_format | bare                                                 |
| created_at       | 2017-01-14T00:58:31Z                                 |
| disk_format      | qcow2                                                |
| file             | /v2/images/583c1e1a-78bd-4030-8b09-84a29102123b/file |
| id               | 583c1e1a-78bd-4030-8b09-84a29102123b                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | cirros                                               |
| owner            | a84ed1f6ae5d433ca1f84396424eae8c                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 13287936                                             |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-01-14T00:58:35Z                                 |
| virtual_size     | None                                                 |
| visibility       | public                                               |
+------------------+------------------------------------------------------+

4、确认镜像上传成功

$ openstack image list

+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 583c1e1a-78bd-4030-8b09-84a29102123b | cirros | active |
+--------------------------------------+--------+--------+

Image service 部署完成

推荐阅读更多精彩内容