安装与配置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 glanceUser 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-glanceclientcd python-glanceclientpip install -r requirements.txtpip install -r test-requirements.txtpython setup.py install && cd ..

安装 python-cinderclient(若在安装keystone时已经安装,则跳过此步骤)

git clone git://git.openstack.org/openstack/python-cinderclientcd python-cinderclientpip install -r requirements.txtpip install -r test-requirements.txtpython setup.py install && cd ..

安装python-keystonemiddleware(若在安装keystone时已经安装,则跳过此步骤)

git clone git://git.openstack.org/openstack/keystonemiddlewarecd keystonemiddlewarepip install -r requirements.txtpip install -r test-requirements.txtpython setup.py install && cd ..

安装python-keystoneclient(若在安装keystone时已经安装,则跳过此步骤)

git clone git://git.openstack.org/openstack/python-keystoneclientcd python-keystoneclientpip 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.gitcd glance_storepip 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-swiftclientcd 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/glancecd glancepip 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://控制器:5000auth_url = http://控制器:35357auth_plugin = passwordproject_domain_id = defaultuser_domain_id = defaultproject_name = serviceusername = glancepassword = GLANCE_PASS[paste_deploy]...

将其中的 GLANCE_PASS 替换为您在身份认证服务中为 glance 用户所设置的密码。

[注意] 注意
注释掉或移除 [keystone_authtoken]段的任何其它选项.

在 [glance_store] 部分,设置本地文件系统的存储和镜像文件的位置:

[glance_store]...default_store = filefilesystem_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 = Truelog_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://控制器:5000auth_url = http://控制器:35357auth_plugin = passwordproject_domain_id = defaultuser_domain_id = defaultproject_name = serviceusername = glancepassword = 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 serverAfter=syslog.target network.target[Service]Type=notifyNotifyAccess=allRestart=alwaysUser=glanceExecStart=/usr/bin/glance-apiPrivateTmp=true[Install]WantedBy=multi-user.target

新建/usr/lib/systemd/system/glance-registry.service文件,写入如下内容

 [Unit]Description=OpenStack Image Service (code-named Glance) Registry serverAfter=syslog.target network.target[Service]Type=notifyNotifyAccess=allRestart=alwaysUser=glanceExecStart=/usr/bin/glance-registryPrivateTmp=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