实验环境
在源码部署 Keystone 之后,继续进行 Glance 的部署。环境设定和 Keystone 部署相关操作见 Ubuntu 18.04 源码安装 Keystone (Victoria) 。
准备工作
数据库配置
MySQL 数据库配置,密码 mysql
1 2 3 4 5 6 7 8 9
| 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';
exit
|
身份认证和 API 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| cat <<EOF>> admin-openrc export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://127.0.0.1:5000/v3 export OS_IDENTITY_API_VERSION=3 EOF
. admin-openrc
openstack project create --domain default --description "Service Project" service
openstack user create --domain default --password-prompt glance
openstack role add --project service --user glance admin
|
创建服务实体和服务 API 端点
1 2 3 4 5 6 7
| openstack service create --name glance --description "OpenStack Image" image
openstack endpoint create --region RegionOne image public http://127.0.0.1:9292 openstack endpoint create --region RegionOne image internal http://127.0.0.1:9292 openstack endpoint create --region RegionOne image admin http://127.0.0.1:9292
|
Glance 部署
安装依赖
下载 Glance 源码,指定 Victoria 版本
1 2
| git clone https://github.com/openstack/glance.git --branch stable/victoria --single-branch
|
进入 Glance 目录安装相关依赖
1 2 3 4 5
| cd glance
sudo apt install $(bindep -b) -y
|
使用 pip 安装相关依赖
1 2
| pip install -r requirements.txt pip install -r test-requirements.txt
|
配置文件
使用 tox 生成配置文件
手动创建目录,将配置文件拷贝过去
1 2 3 4 5 6 7 8 9
| sudo mkdir /etc/glance
sudo cp etc/glance-api.conf /etc/glance/glance-api.conf sudo cp etc/glance-api-paste.ini /etc/glance/glance-api-paste.ini
sudo vim /etc/glance/glance-api.conf
|
在相应的小节添加配置,没有安装 memcached 所以对应的配置注释掉了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [database] connection = mysql+pymysql://glance:GLANCE_DBPASS@localhost/glance
[keystone_authtoken] www_authenticate_uri = http://localhost:5000/v3 auth_url = http://localhost:5000/v3 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = glance
[paste_deploy] flavor = keystone
[glance_store] stores = file,http default_store = file filesystem_store_datadir = /var/lib/glance/images/
|
启用服务
安装 Glance
1
| sudo python setup.py install
|
启用 Glance 镜像服务
PS:这里使用 .tox 文件夹下的工具,否则会报错,反正最终的结果是写入数据库,所以这里的问题暂时不管
1 2 3 4 5 6 7 8
| .tox/genconfig/bin/glance-manage db_sync
sudo glance-api --config-file=/etc/glance/glance-api.conf --config-file=/etc/glance/glance-api-paste.ini > /dev/null 2>&1 &
sudo glance-api --config-file=/etc/glance/glance-api.conf --config-file=/etc/glance/glance-api-paste.ini --debug
|
测试
使用 OpenStack Client 执行一些和镜像有关的操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| . admin-openrc
openstack image list
wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
openstack image create "cirros" \ --file cirros-0.4.0-x86_64-disk.img \ --disk-format qcow2 --container-format bare \ --public
openstack image list
|
参阅