Glance 安裝與設定

OpenStack 的 Glance 提供了映像檔服務,該服務是整個 OpenStack 基礎架構的核心之一,其提供一套 API 來存取映像檔與詮釋資料(Metadata)的定義,並且支援多種儲存類型上的虛擬機映像檔,如 OpenStack 物件儲存等。

提醒! 以下操作將一律在 Controller 進行。

安裝前準備

在開始安裝前,要預先建立一個資料庫給 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 apt-get install -y glance

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

[database]
# sqlite_db = /var/lib/glance/glance.sqlite
connection = mysql+pymysql://glance:[email protected]/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:[email protected]/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

完成後,重新啟動 Glance 的服務:

sudo service glance-registry restart
sudo service glance-api restart

最後刪除預設的 SQLite 資料庫:

$ sudo rm -f /var/lib/glance/glance.sqlite

驗證服務

首先接著導入 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

成功後會看到以下資訊:

+------------------+--------------------------------------+
| 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                               |
+------------------+--------------------------------------+

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

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

results matching ""

    No results matching ""