openstack-havana云平台实验(3)
时间:2016-10-10 09:32 来源:潇湘夜雨 作者:华嵩阳 点击:次
keystone user-role-add --tenant-id 5eaea442e6f44ccda09a5ea7847dea36 --user-id b5063b4b8c4747fd9b9cb9ccd03d44f1 --role-id 6250d1ec87954a818c6d911ae0230665
二、Openstack Image Service
Openstack Image服务可用于发现、注册及检索虚拟机映像(image),它提供了一个RESTful的API,
能够让用户查询VM映像的元数据及通过HTTP请求获取映像,并可以让python程序员通过客户端类
在python代码中完成类似的所有任务。VM映像文件可以存储在各类存储中,如普通的文件系统、对
象存储系统(如Openstack Object Storage)、S3存储及HTTP(仅作为获取映像文件之用,而不能写于
此中创建映像文件)等。
2.1 安装配置Glance服务
2.1.1 安装相关软件包
# yum -y install openstack-glance
初始化glance数据库,同时创建其服务同名的用户,并为其指定密码,这里选择使用与服务名同名的密码glance。
# openstack-db --init --service glance --password glance
如果不想使用默认的glance用户访问其数据,也可以使用下面的命令为glance创建数据库及相关的用户。
# mysql -uroot -p
mysql> CREATE DATABASE glance;
mysql> GRANT ALL ON glance.* TO 'GLANCE_USER'@'%' IDENTIFIED BY 'GLANCE_PASS';
mysql> GRANT ALL ON glance.* TO 'GLANCE_USER'@'localhost' IDENTIFIED BY 'GLANCE_PASS';
mysql> FLUSH PRIVILEGES;
2.1.2 创建glance管理用户
提示:以keystone管理员的身份完成如下操作。
首先,创建用户glance,密码同用户名。安全起见,实际使用中,用户名和密码都应该按需修改。
keystone user-create --name glance --pass glance --email glance@test.com
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | glance@test.com |
| enabled | True |
| id | ef4831f1ff5d41618e9323f3ec33d6a9 |
| name | glance |
+----------+----------------------------------+
接着将用户加入前面创建的service tenant中,并将角色admin赋予glance用户。
keystone user-role-add --tenant-id 5eaea442e6f44ccda09a5ea7847dea36 --user-id ef4831f1ff5d41618e9323f3ec33d6a9 --role-id 6250d1ec87954a818c6d911ae0230665
2.1.3 配置glance-api
编辑/etc/glance/glance-api.conf,配置glance相关属性。
glance-api服务实现了第一版(v1)和第二版(v2)的OpenStack Images API,如果想启用它们,请启用如下两项。
enable_v1_api = True
enable_v2_api = True
将glance-api.conf文件最后两段的内容按需修改为类似如下的内容。这些设定也可以使用“openstack-config”的“--set”选项来逐个修改。
[keystone_authtoken]
auth_host=172.18.109.235
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=glance
admin_password=glance
[paste_deploy]
config_file=/etc/glance/glance-api-paste.ini
flavor=keystone
并且要确保sql_connection参数的值配置使用了正确的用户名和密码,本示例中如下所示:
sql_connection=mysql://glance:glance@172.18.109.235/glance
此外,glance默认使用“File”做为其存储类型,如果可使用后文安装配置的swift服务来替代这里的“File”类型,还需要修改类似如下选项的值为实际需要的值。这里先采用默认的File类型。
default_store = swift
swift_store_auth_version = 2
swift_store_auth_address = http://172.18.109.235:5000/v2.0/
swift_store_user = service:swift
swift_store_key = swift
swift_store_container = glance
swift_store_create_container_on_put = True
swift_store_large_object_size = 5120
swift_store_large_object_chunk_size = 200
swift_enable_snet = False
2.1.4 配置glance-registry
修改/etc/glance/glance-registry.conf最后两段的内容类似如下所示:
[keystone_authtoken]
auth_host=172.18.109.235
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=glance
admin_password=glance
[paste_deploy]
config_file=/etc/glance/glance-registry-paste.ini
flavor=keystone
确保glance-registry-dist-paste.ini文件中启用了如下行:
[pipeline:glance-registry-keystone]
pipeline = authtoken context registryapp
添加keystone的认证信息到 /etc/glance/glance-api-paste.ini and /etc/glance/glance-registry-paste.ini files.
在centos中,你还需要复制这些认证文件到正确的位置
# cp /usr/share/glance/glance-api-dist-paste.ini /etc/glance/glance-api-paste.ini
# cp /usr/share/glance/glance-registry-dist-paste.ini /etc/glance/glance-registry-paste.ini
Edit each file to set the following options in the [filter:authtoken] section and leave any other existing option as it is.
[filter:authtoken]
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
auth_host=172.18.109.235
auth_port=35357
auth_protocol=http
admin_tenant_name=service
admin_user=glance
admin_password=glance
2.1.5 启动服务
启动glance-api服务:
# service openstack-glance-api start
# chkconfig openstack-glance-api on
启动glance-registry服务:
# service openstack-glance-registry start
# chkconfig openstack-glance-registry on
2.1.6 填充或迁移数据库:
# glance-manage db_sync
重启glance-api及glance-registry服务:
# service openstack-glance-registry restart
# service openstack-glance-api restart
2.1.7 在keystone注册glance服务
注册glance服务
[root@node1 ~(keystone_admin)]# keystone service-create --name=glance --type=image --description="Glance Image Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Glance Image Service |
| id | 30391a06172348748e23eeba8e46a5e8 |
| name | glance |
| type | image |
+-------------+----------------------------------+
创建glance服务的访问链接endpoint
keystone endpoint-create --service_id 30391a06172348748e23eeba8e46a5e8 \
--publicurl http://172.18.109.235:9292 \
--adminurl http://172.18.109.235:9292 \
--internalurl http://172.18.109.235:9292
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://172.18.109.235:9292 |
| id | aeb724b8e2004f51baefdcce926841bc |
| internalurl | http://172.18.109.235:9292 |
| publicurl | http://172.18.109.235:9292 |
| region | regionOne |
| service_id | 30391a06172348748e23eeba8e46a5e8 |
+-------------+----------------------------------+
2.1.8 测试
默认情况下,glance中没有任何映像文件,因此下面的命令将没有任何返回值。如果其不能返回为空或报错,原因可能是配置有问题或注册glance服务到keystone失败,请自行检查前面的配置过程。 (责任编辑:liangzh) |