OpenStack安装流程(juno版)- 添加镜像服务(glance)
OpenStack镜像服务(glance)可以让用户查询,存取虚拟机。
安装和配置
glance安装在controller节点上。
创建配置glance所需的数据库,服务证书和API端点
- 创建glance数据库:
用root身份进入数据库:$ mysql -u root -p
创建glance数据库:
<pre>CREATE DATABASE glance;
</pre>把glance数据库的访问权限赋予名为glance,来自任何主机地址的用户,并设定访问密码为GLANCE_DBPASS(替换为合适的密码):
<pre>GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';</pre>
退出数据库。
- 启动
admin
证书:$ source admin-openrc.sh
- 创建glance的服务证书:
创建
glance
用户:
<pre>$ keystone user-create --name glance --pass GLANCE_PASS
Property | Value |
---|---|
enabled | True |
id | 9d458c5ef8854904ae279f25bbbc5b8b |
name | glance |
username | glance |
+----------+----------------------------------+</pre>
用合适的密码替换GLANCE_PASS。
把admin
角色赋予给glance
用户:$ keystone user-role-add --user glance --tenant service --role admin
这条命令不产生输出显示。
创建glance
服务实体:
<pre>$ keystone service-create --name glance --type image \
--description "OpenStack Image Service" | |
---|---|
Property | Value |
description | OpenStack Image Service |
enabled | True |
id | 8247ab1fa1be4b75aef86889ad66698d |
name | glance |
type | image |
+-------------+----------------------------------+</pre>
- 创建镜像服务的API端点:
<pre>$ keystone endpoint-create \
--service-id $(keystone service-list | awk '/ image / {print $2}') \
--publicurl http://controller:9292 \
--internalurl http://controller:9292 \
--adminurl http://controller:9292 \
--region regionOne | |
---|---|
Property | Value |
adminurl | http://controller:9292 |
id | ac47c90ff5c842eda22e59d408bc5bbf |
internalurl | http://controller:9292 |
publicurl | http://controller:9292 |
region | regionOne |
service_id | 8247ab1fa1be4b75aef86889ad66698d |
+-------------+----------------------------------+</pre>
安装和配置镜像服务的组件
- 安装所需包:
# apt-get install glance python-glanceclient
- 编辑
# vi /etc/glance/glance-api.conf
文件:在
[database]
部分,设定数据库的访问选项:
<pre>[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance</pre>
GLANCE_DBPASS为创建glance数据库时设立的密码。
在[keystone_authtoken]
和[paste_deploy]
部分,设定认证服务的选项:
<pre>[keystone_authtoken]<br>...<br>auth_uri = <a href="http://controller" rel="nofollow noreferrer">http://controller</a>:5000/v2.0<br>identity_uri = <a href="http://controller" rel="nofollow noreferrer">http://controller</a>:35357<br>admin_tenant_name = service<br>admin_user = glance<br>admin_password = GLANCE_PASS
</pre>
<pre>[paste_deploy]<br>...<br>flavor = keystone
</pre>
GLANCE_PASS为创建glance
用户时使用的密码。在[keystone_authtoken]
部分,注释掉 auth_host,auth_port,和auth_protocol的选项,因为identity_uri选项是直接代替它们的。
在[glance_store]
部分,设定本地文件系统存储方式(local file system store)和镜像文件的存储位置:
<pre>[glance_store]<br>...<br>default_store = file<br>filesystem_store_datadir = /var/lib/glance/images/
</pre>
在[DEFAULT]
部分,将notification driver设定为noop来关闭通知,因为通知服务将由Telemetry服务来提供:
<pre>[DEFAULT]<br>...<br>notification_driver = noop
</pre>
继续在[DEFAULT]
部分,开启“详细输出日志”选项:
<pre>[DEFAULT]<br>...<br>verbose = True
</pre>
- 编辑
# vi /etc/glance/glance-registry.conf
文件:在
[database]
部分,设定数据库的访问选项:
<pre>[database]
...
connection = mysql://glance:GLANCE_DBPASS@controller/glance</pre>
GLANCE_DBPASS为创建glance数据库时设立的密码。
在[keystone_authtoken]
和[paste_deploy]
部分,设定认证服务的选项:
<pre>[keystone_authtoken]<br>...<br>auth_uri = <a href="http://controller" rel="nofollow noreferrer">http://controller</a>:5000/v2.0<br>identity_uri = <a href="http://controller" rel="nofollow noreferrer">http://controller</a>:35357<br>admin_tenant_name = service<br>admin_user = glance<br>admin_password = GLANCE_PASS
</pre>
<pre>[paste_deploy]<br>...<br>flavor = keystone
</pre>
GLANCE_PASS为创建glance
用户时使用的密码。在[keystone_authtoken]
部分,注释掉 auth_host,auth_port,和auth_protocol的选项,因为identity_uri选项是直接代替它们的。
在[DEFAULT]
部分,将notification driver设定为noop来关闭通知,因为通知服务将由Telemetry服务来提供:
<pre>[DEFAULT]<br>...<br>notification_driver = noop
</pre>
继续在[DEFAULT]
部分,开启“详细输出日志”选项:
<pre>[DEFAULT]<br>...<br>verbose = True
</pre>
- 同步数据库:
# glance-manage db_sync
完成安装
- 重启镜像服务:
# service glance-registry restart
# service glance-api restart
- 删除Ubuntu默认产生的SQLite数据库:
# rm -f /var/lib/glance/glance.sqlite
验证操作
这节采用CirrOS,一种非常小的Linux镜像,来进行验证。
- 下载镜像:
镜像的下载地址为:http://download.cirros-cloud....$ wget <a href="http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img" rel="nofollow noreferrer">http://download.cirros-cloud....</a>
- 启动
admin
证书:$ source admin-openrc.sh
- 上传镜像文件到镜像服务上:
<pre>$ glance image-create --name "cirros-0.3.3-x86_64" --file /home/controller/Downloads/cirros-0.3.3-x86_64-disk.img \
--disk-format qcow2 --container-format bare --is-public True --progress
[=============================>] 100% | |
---|---|
Property | Value |
checksum | 133eae9fb1c98f45894a4e60d8736619 |
container_format | bare |
created_at | 2015-11-25T03:04:22 |
deleted | False |
deleted_at | None |
disk_format | qcow2 |
id | 6db9f9c9-4011-4cf5-a12b-dc70423ec0c3 |
is_public | True |
min_disk | 0 |
min_ram | 0 |
name | cirros-0.3.3-x86_64 |
owner | 4f7806287c9a437e9cd912504ff71727 |
protected | False |
size | 13200896 |
status | active |
updated_at | 2015-11-25T03:04:22 |
virtual_size | None |
+------------------+--------------------------------------+</pre>
- 确认上传的镜像文件:
<pre>$ glance image-list
ID | Name | Disk Format | Container Format | Size | Status |
---|---|---|---|---|---|
6db9f9c9-4011-4cf5-a12b-dc70423ec0c3 | cirros-0.3.3-x86_64 | qcow2 | bare | 13200896 | active |
+--------------------------------------+---------------------+-------------+------------------+----------+--------+</pre>
至此完成glance的安装,本节安装较为简单一般不会出现问题。