由於時間關系簡單的架構圖就先不展示了。后續的更新會貼上...
部署glance
安裝memcache服務
yum install memcached python-memcached
systemctl enable memcached.service
systemctl start memcached.service
1.glance的數據庫操作
glance跟其他的組件都共享一台數據庫,所以直接在部署keystone的那台數據庫中操作即可。
mysql -u root -p #登入數據庫 CREATE DATABASE glance; #新建庫keystone GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \ IDENTIFIED BY '123'; #新建本地訪問glance庫的賬號 GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \ IDENTIFIED BY '123'; #新建遠程訪問glance庫的賬號
2.glance關於keystone的操作
首先要建立一個glance用戶,然后創建一個項目,最后關聯賦予角色,在搭建keystone的時候,glance屬於一個組件,keystone屬於一個組件,nova屬於一個組件等等的這些所有的組件都在一個項目中(service項目),所以項目就不需要建立,直接賦予角色信息。
對於glance來說,它屬於管理着鏡像服務,keystone管理着認證服務,neutron管理着網絡服務,nova,cinder等等,這些所有的管理者的用戶必須是admin。
#獲得管理員權先。 #為glance的使用者創建用戶 openstack user create --domain default --password-prompt glance #對glance-service添加role角色,提示:用戶glance只有在一個確定的項目service內才有角色的概念,單獨的用戶或者單獨的項目都是無法綁定角色的。 openstack role add --project service --user glance admin
查看關聯
由上圖可見第一行就是建立了關聯,用戶--角色--項目都已經建好了。接下來就要建立訪問glance的catalog了
#創建glance服務的catalog:service+endpoint openstack service create --name glance \ --description "OpenStack Image" image #一定要指定它的類型為image鏡像類型
openstack endpoint create --region RegionOne \ image public http://182.92.84.106:9292 openstack endpoint create --region RegionOne \ image internal http://182.92.84.106:9292 openstack endpoint create --region RegionOne \ image admin http://182.92.84.106:9292
指定類型
三種訪問路徑
public
internal
admin
查看服務
查看endpoint
注意現在的這些操作都是在keystone里面,還沒有具體的glance服務。
keystone對glance的操作就結束了 接下來就是正式安裝glance了
3.安裝軟件包
yum -y install openstack-glance
4.配置glance
注意注意:每一條配置都要新建到文件中,不要打開注釋在原有的基礎上修改
創建本地存儲
1.一定要在opesntack-glance-api.service服務啟動之前部署好存儲設備,因為該服務在啟動時會加載存儲驅動檢索存儲設備,如果事先不存在,就意味着該服務沒有識別到任何可用的存儲設備,即便是后來你又新增了存儲,仍然是無效的,最終導致你上傳鏡像失敗;
2.一定要賦予opesntack-glance-api.service服務對存儲設備的可寫權限。
mkdir /var/lib/glance/images chown -R glance.glance /var/lib/glance/images
配置/etc/glance/glance-api.conf V2版本
[database] connection = mysql+pymysql://glance:123@182.92.84.106/glance [keystone_authtoken] auth_uri = http://182.92.84.106:5000 auth_url = http://182.92.84.106:35357 memcached_servers = 182.92.84.106:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = 123 [paste_deploy] flavor = keystone [glance_store] stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/
配置 /etc/glance/glance-registry.conf V1版本
[database] connection = mysql+pymysql://glance:123@182.92.84.106/glance #可選
[keystone_authtoken]
auth_uri = http://182.92.84.106:5000
auth_url = http://182.92.84.106:35357
memcached_servers = 182.92.84.106:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service
username = glance password = 123
#可選 [paste_deploy] flavor = keystone
5.初始化數據庫
su -s /bin/sh -c "glance-manage db_sync" glance ''' 並不是報錯 Option "verbose" from group "DEFAULT" is deprecated for removal. Its value may be silently ignored in the future. /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:1171: OsloDBDeprecationWarning: EngineFacade is deprecated; please use oslo_db.sqlalchemy.enginefacade expire_on_commit=expire_on_commit, _conf=conf) /usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (1831, u"Duplicate index 'ix_image_properties_image_id_name' defined on the table 'glance.image_properties'. This is deprecated and will be disallowed in a future release.") result = self._query(query) '''
6.啟動glance並設置為開機自啟動
systemctl enable openstack-glance-api.service \ openstack-glance-registry.service systemctl start openstack-glance-api.service \ openstack-glance-registry.service
驗證
首先獲得admin權限
source admin-openrc
這時候執行如下命令可以看到為空
openstack image list
因為里面還沒有鏡像 所以我們要先上傳一個
下載鏡像
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
使用glacne創一個鏡像 openstack image create "cirros" \ --file cirros-0.3.4-x86_64-disk.img \ --disk-format qcow2 --container-format bare \ --public
鏡像上傳到glance后 即使刪除了原文件也無所謂
可以使用qemu-img來查看鏡像信息