安装与配置Glance

简介

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

发表回复 0