简介
glance是为Openstack提供镜像服务,Openstack镜像服务是基础设施即服务(IAAS)的中心,他接受处理来自用户的硬盘或服务镜像与镜像元数据等请求。他同时也提供硬盘、镜像存储服务。
openstack中的镜像服务包括如下内容:
- glance-api:接受镜像api的调用,包括镜像发现、存储与检索
- glance-registry:存储、处理与检索镜像的元数据,元数据主要包括镜像的类型与大小的信息
- Database:存储镜像元数据,你可以根据你的个人爱好选择相应的数据库,大多数开发者选择MYSQL数据库或者SQLite
-
storage repository for image file:镜像文件的存储仓库,支持各种文件系统类型,其中包括普通文件系统、对象存储、RADOS块设备、HTTP、Amazon S3等。
这部分介绍安装与配置镜像服务,我们将镜像服务glance安装在controller节点,同时,为了简单起见,我们使用本地文件系统来存储镜像。
安装前准备
- 在我们安装前需要创建数据库,服务证书与API端点(endpoint)
- 连接controller数据库,请将密码PASSWORD替换为你的密码
mysql -uroot -pPASSWORD
- 创建数据库glance,并给glance授予本地与远程登陆的所有权限,PASSWORD,请将密码PASSWORD替换为你的密码
CREATE DATABASE glance;
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'
IDENTIFIED BY 'PASSWORD';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'
IDENTIFIED BY 'PASSWORD';
- 配置全局变量,在这里我们使用我们在“安装keystone”时创建的admin.sh脚本
source admin-openrc.sh
-
创建服务证书
-
创建glance用户
penstack user create --password-prompt glance
User Password:
Repeat User Password:
+----------+----------------------------------+
| Field | Value |
+----------+----------------------------------+
| email | None |
| enabled | True |
| id | 1dc206e084334db2bee88363745da014 |
| name | glance |
| username | glance |
+----------+----------------------------------+
- 将admin角色加入glance用户与service工程
openstack role add --project service --user glance admin
+-------+----------------------------------+
| Field | Value |
+-------+----------------------------------+
| id | cd2cb9a39e874ea69e5d4b896eb16128 |
| name | admin |
+-------+----------------------------------+
- 创建glance服务实体
openstack service create --name glance
--description OpenStack Image service image
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Image service |
| enabled | True |
| id | 178124d6081c441b80d79972614149c6 |
| name | glance |
| type | image |
+-------------+----------------------------------+
- 创建服务镜像api endpoint
penstack endpoint create --publicurl http://controller:9292 --internalurl http://controller:9292 --adminurl http://controller:9292 --region RegionOne image +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | adminurl | http://controller:9292 | | id | 805b1dbc90ab47479111102bc6423313 | | internalurl | http://controller:9292 | | publicurl | http://controller:9292 | | region | RegionOne | | service_id | 178124d6081c441b80d79972614149c6 | | service_name | glance | | service_type | image | +--------------+----------------------------------+
安装
安装软件依赖
yum -y install python2-devel python-setuptools python-distutils-extra python-webob python-eventlet python-virtualenv libpqxx-devel
安装python-glanceclient
若在安装keystone时已经安装,则跳过此步骤
git clone git://git.openstack.org/openstack/python-glanceclient
cd python-glanceclient
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装 python-cinderclient(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/python-cinderclient
cd python-cinderclient
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装python-keystonemiddleware(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/keystonemiddleware
cd keystonemiddleware
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装python-keystoneclient(若在安装keystone时已经安装,则跳过此步骤)
git clone git://git.openstack.org/openstack/python-keystoneclient
cd python-keystoneclient
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装glance-store
git clone https://github.com/openstack/glance_store.git
cd glance_store
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装swift-client
git clone git://git.openstack.org/openstack/python-swiftclient
cd python-swiftclient/
pip install -r requirements.txt
pip install -r test-requirements.txt
python setup.py install && cd ..
安装glance
git clone git://git.openstack.org/openstack/glance
cd glance
pip install -r requirements.txt
python setup.py install
新建/etc/glance
mkdir -p /etc/glance
将本目录下etc文件夹中的所有内容拷贝到/etc/glance/中
cp -r ./etc/* /etc/glance/
编辑glance的配置文件
修改配置文件 /etc/glance/glance-api.conf 并完成以下操作:
在 [database] 段,配置数据库访问相关参数:
[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance
将其中的 GLANCE_DBPASS 替换为您为镜像服务数据库所设置的密码。
在 [keystone_authtoken] 和 [paste_deploy] 部分,配置身份认证服务的访问:
[keystone_authtoken]
...
auth_uri = http://控制器:5000
auth_url = http://控制器:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
...
将其中的 GLANCE_PASS 替换为您在身份认证服务中为 glance 用户所设置的密码。
[注意] 注意
注释掉或移除 [keystone_authtoken]段的任何其它选项.
在 [glance_store] 部分,设置本地文件系统的存储和镜像文件的位置:
[glance_store]
...
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
在 [DEFAULT] 部分,配置 noop 消息驱动以禁用消息,因为它们只与可选的 Telemetry 服务有关: 若没有/var/lib/glance/images文件夹,则新建
mkdir -p /var/lib/glance/images
若没有glance用户,先添加glance用户
useradd glance
修改/var/lib/glance/images权限
chown -R glance:glance /var/lib/glance/images
[DEFAULT]
...
notification_driver = noop
(可选配置)可以在 [DEFAULT] 段中开启详细日志配置,为后期的故障排除提供帮助:
[DEFAULT]
...
verbose = True
log_file = /var/log/glance/glance-api.log
若没有/var/log/glance
mkdir -p /var/log/glance
更改权限
chown -R glance:glance /var/log/glance
修改配置文件 /etc/glance/glance-registry.conf 并完成以下操作:
在 [database] 段,配置数据库访问相关参数:
[database]
...
connection = mysql://glance:GLANCE_DBPASS@控制器/glance
将其中的 GLANCE_DBPASS 替换为您为镜像服务数据库所设置的密码。 在 [keystone_authtoken] 和 [paste_deploy] 部分,配置身份认证服务的访问:
[keystone_authtoken]
...
auth_uri = http://控制器:5000
auth_url = http://控制器:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
...
flavor = keystone
将其中的 GLANCE_PASS 替换为您在身份认证服务中为 glance 用户所设置的密码。 [注意] 注意
注释掉或移除 [keystone_authtoken]段的任何其它选项.
在 [DEFAULT] 部分,配置 noop 消息驱动以禁用消息,因为它们只与可选的 Telemetry 服务有关:
[DEFAULT]
...
notification_driver = noop
(可选配置)可以在 [DEFAULT] 段中开启详细日志配置,为后期的故障排除提供帮助:
[DEFAULT]
...
verbose = True
...
log_file = /var/log/glance/glance-registry.log
写入数据库
su -s /bin/sh -c glance-manage db_sync glance
创建开机脚本
新建/usr/lib/systemd/system/glance-api.service文件,写入如下内容:
[Unit]
Description=OpenStack Image Service (code-named Glance) API server
After=syslog.target network.target
[Service]
Type=notify
NotifyAccess=all
Restart=always
User=glance
ExecStart=/usr/bin/glance-api
PrivateTmp=true
[Install]
WantedBy=multi-user.target
新建/usr/lib/systemd/system/glance-registry.service文件,写入如下内容
[Unit]
Description=OpenStack Image Service (code-named Glance) Registry server
After=syslog.target network.target
[Service]
Type=notify
NotifyAccess=all
Restart=always
User=glance
ExecStart=/usr/bin/glance-registry
PrivateTmp=true
[Install]
WantedBy=multi-user.target
完成安装
启动glance api registry服务
systemctl enable glance-api.service glance-registry.service
$systemctl start glance-api.service glance-registry.service
Was this helpful?
0 / 0