潇湘夜雨移动版

主页 > 系统 > 云计算与云原生 >

openstack-havana云平台实验(3)

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)