三、鏡像服務mysql
3.一、建立一個數據庫、服務憑證和API端點sql
3.1.一、完成下面的步驟以建立數據庫:數據庫
用數據庫鏈接客戶端以 root 用戶鏈接到數據庫服務器:api
# mysql -u root -p安全
建立 glance 數據庫:服務器
CREATE DATABASE glance;dom
對``glance``數據庫授予恰當的權限:ide
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'P@ssw0rd';memcached
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'P@ssw0rd';url
flush privileges;
3.1.二、得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
# . admin-openrc
3.1.三、建立服務證書
建立 glance 用戶:
# openstack user create --domain default --password-prompt glance
添加 admin 角色到 glance 用戶和 service 項目上
# openstack role add --project service --user glance admin
建立``glance``服務實體:
# openstack service create --name glance --description "OpenStack Image" image
3.1.四、建立鏡像服務的 API 端點
openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin http://controller:9292
3.二、安全並配置組件
3.2.一、安裝軟件包
# yum install openstack-glance -y
3.2.二、編輯文件 /etc/glance/glance-api.conf 並完成以下動做:
在 [database] 部分,配置數據庫訪問:
connection = mysql+pymysql://glance:P@ssw0rd@controller/glance
在 [keystone_authtoken] 部分,配置認證服務訪問:
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = P@ssw0rd
註解:在 [keystone_authtoken] 中註釋或者刪除其餘選項
在[paste_deploy] 部分,配置認證服務訪問:
flavor = keystone
在 [glance_store] 部分,配置本地文件系統存儲和鏡像文件位置:
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
注意:這裏設置了系統鏡像目錄,要確認目錄是否存在,本次部署以下圖因此已經存在且權限清晰。
如不存在就建立目錄並賦權:
mkdir /var/lib/glance/images/
chown glance. /var/lib/glance/images/
3.2.三、編輯文件 ``/etc/glance/glance-registry.conf``並完成以下動做:
在 [database] 部分,配置數據庫訪問:
connection = mysql+pymysql://glance:P@ssw0rd@controller/glance
在 [keystone_authtoken]部分,配置認證服務訪問:
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = P@ssw0rd
註解:在 [keystone_authtoken] 中註釋或者刪除其餘選項。
在 [paste_deploy]部分,配置認證服務訪問:
flavor = keystone
3.2.四、寫入鏡像服務數據庫:
# su -s /bin/sh -c "glance-manage db_sync" glance
3.三、啓動鏡像服務、配置他們隨機啓動
# systemctl enable openstack-glance-api.service openstack-glance-registry.service
# systemctl start openstack-glance-api.service openstack-glance-registry.service
3.四、驗證操做(在控制節點上執行這些命令)
3.4.一、得到 admin 憑證來獲取只有管理員能執行的命令的訪問權限:
# . admin-openrc
3.4.二、下載源鏡像
# wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
3.4.三、使用 QCOW2 磁盤格式, bare 容器格式上傳鏡像到鏡像服務並設置公共可見,這樣全部的項目均可以訪問它:
# openstack image create "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --public
如上圖所示,鏡像上傳成功,已經到指定目錄:/var/lib/glance/images/
說明:若是沒有執行 admin-openrc就會報錯,以下圖所示:
3.4.四、確認鏡像的上傳並驗證屬性:
# openstack image list