Glance 安裝與設定

本章節會說明與操作如何安裝映像檔服務到 Controller 節點上,並設置相關參數與設定。若對於 Glance 不瞭解的人,可以參考 Glance 映像檔服務章節

安裝前準備

在開始安裝前,要預先建立一個資料庫給 Glance 儲存相關資訊,使用以下指令建立資料庫:

$ mysql -u root -p

透過以下命令用來更新現有帳號資料或建立 Glance 資料庫:

CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'  IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';

這邊GLANCE_DBPASS可以隨需求修改。

完成後離開資料庫,接著要建立 Service 與 API Endpoint,首先導入 admin 環境變數:

$ . admin-openrc

接著透過以下流程來建立 Glance 的使用者、Service 以及 API Endpoint:

# 建立 Glance user
$ openstack user create --domain default \
--password GLANCE_PASS --email [email protected] glance

# 新增 Glance 到 Admin Role
$ openstack role add --project service --user glance admin

# 建立 Glance service
$ openstack service create --name glance  --description "OpenStack Image service" image

# 建立 Glance public endpoints
$ openstack endpoint create --region RegionOne \
image public http://10.0.0.11:9292

# 建立 Glance internal endpoints
$ openstack endpoint create --region RegionOne \
image internal http://10.0.0.11:9292

# 建立 Glance admin endpoints
$ openstack endpoint create --region RegionOne \
image admin http://10.0.0.11:9292

在 v3 版本中,可以加入-f <json, shell, table, yaml>來檢視 keystone 資訊。

套件安裝與設定

在開始設定之前,首先要安裝相關套件與 OpenStack 服務套件,可以透過以下指令進行安裝:

$ sudo yum install openstack-glance

安裝完成後,編輯 /etc/glance/glance-api.conf 設定檔,在[database]部分修改使用以下方式:

[database]
# sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql+pymysql://glance:GLANCE_DBPASS@10.0.0.11/glance

這邊GLANCE_DBPASS可以隨需求修改。

接下來,在[keystone_authtoken]部分加入以下內容:

[keystone_authtoken]
auth_uri = http://10.0.0.11:5000
auth_url = http://10.0.0.11:35357
memcached_servers = 10.0.0.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS

這邊GLANCE_PASS可以隨需求修改。

[paste_deploy]部分加入以下內容:

[paste_deploy]
flavor = keystone

[glance_store]部分加入以下內容:

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

其中filesystem_store_datadir是當映像檔上傳時,檔案放置的目錄。

完成後,要接著編輯/etc/glance/glance-registry.conf並完成以下設定,在[database]部分修改使用以下方式:

[database]
# sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql+pymysql://glance:GLANCE_DBPASS@10.0.0.11/glance

這邊GLANCE_DBPASS可以隨需求修改。

接下來,在[keystone_authtoken]部分加入以下內容:

[keystone_authtoken]
auth_uri = http://10.0.0.11:5000
auth_url = http://10.0.0.11:35357
memcached_servers = 10.0.0.11:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS

這邊GLANCE_PASS可以隨需求修改。

[paste_deploy]部分加入以下內容:

[paste_deploy]
flavor = keystone

完成以上兩個檔案設定後,即可同步資料庫來建立資料表:

$ sudo glance-manage db_sync

完成後設定開機時啟動服務:

$ sudo systemctl enable openstack-glance-api.service \
openstack-glance-registry.service

完成後啟動 Glance 服務:

$ sudo systemctl start openstack-glance-api.service \
openstack-glance-registry.service

驗證服務

首先接著導入 admin 帳號來驗證服務:

$ . admin-openrc

從網路上下載一個測試用映像檔 cirros-0.3.4-x86_64

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

這邊透過指令將映像檔上傳,採用 QCOW2 格式,並且設定為公開的映像檔,來提供給雲端租戶們使用:

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

如果發現無法上傳 img 可以嘗試更改檔案目錄權限使用以下指令:

chown glance:glance /var/lib/glance

成功後會看到以下資訊:

+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ee1eca47dc88f4879d8a229cc70a07c6     |
| container_format | bare                                 |
| created_at       | 2016-03-30T16:04:32Z                 |
| disk_format      | qcow2                                |
| id               | 520bf946-436d-4fbd-a21b-62d5879c966e |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros-0.3.4-x86_64                  |
| owner            | 136884a1934f4d4c950e1397797b7a68     |
| protected        | False                                |
| size             | 13287936                             |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2016-03-30T16:04:32Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+

完成後,可以透過 OpenStack client 程式來查看所有映像檔,指令如下:

$ openstack image list
+--------------------------------------+---------------------+
| ID                                   | Name                |
+--------------------------------------+---------------------+
| 520bf946-436d-4fbd-a21b-62d5879c966e | cirros-0.3.4-x86_64 |
+--------------------------------------+---------------------+