Image Service
本文介紹在controller
節點上安裝、配置Image服務 glance
,鏡像存儲在本地文件系統
安裝準備
controller 節點 ip:192.168.1.101
1、首先創建數據庫、service credentials
和API 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 |
+--------------------------------------+--------+--------+