安装与配置Glance

Glance简介

glance是为Openstack提供镜像服务,Openstack镜像服务是基础设施即服务(IAAS)的中心,他接受处理来自用户的硬盘或服务镜像与镜像元数据等请求。他同时也提供硬盘、镜像存储服务。

openstack中的镜像服务包括如下内容:

glance-api

    接受镜像api的调用,包括镜像发现、存储与检索

glance-registry

    存储、处理与检索镜像的元数据,元数据主要包括镜像的类型与大小的信息

Database

    存储镜像元数据,你可以根据你的个人爱好选择相应的数据库,大多数开发者选择MYSQL数据库或者SQLite

storage repository for image file

    镜像文件的存储仓库,支持各种文件系统类型,其中包括普通文件系统、对象存储、RADOS块设备、HTTP、Amazon S3等。


安装与配置glance

这部分介绍安装与配置镜像服务,我们将镜像服务glance安装在controller节点,同时,为了简单起见,我们使用本地文件系统来存储镜像。


安装前准备

1、在我们安装前需要创建数据库,服务证书与API端点(endpoint)

    a、连接controller数据库,请将密码PASSWORD替换为你的密码

mysql -uroot -pPASSWORD 

 

    b、创建数据库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';

2、配置全局变量,在这里我们使用我们在“安装keystone”时创建的admin.sh脚本

source admin-openrc.sh

3、创建服务证书

    a、创建glance用户

 openstack user create --password-prompt glance
User Password:
Repeat User Password:
+----------+----------------------------------+
| Field    | Value                            |
+----------+----------------------------------+
| email    | None                             |
| enabled  | True                             |
| id       | 1dc206e084334db2bee88363745da014 |
| name     | glance                           |
| username | glance                           |
+----------+----------------------------------+

 

    b、将admin角色加入glance用户与service工程

 openstack role add --project service --user glance admin
+-------+----------------------------------+
| Field | Value                            |
+-------+----------------------------------+
| id    | cd2cb9a39e874ea69e5d4b896eb16128 |
| name  | admin                            |
+-------+----------------------------------+

     c、创建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                            |
+-------------+----------------------------------+

     d、创建服务镜像api endpoint

$ openstack 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]
...
flavor = keystone

将其中的 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


Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
永久连接: http://www.nfvschool.cn/?p=175
标签:

发表评论