1. openStack互操作性认证内容
DefCore(OpenStack CoreDefinition)是OpenStack 董事会在2014 年11 月提出的一个项目,即认定厂商的部署为合法OpenStack 的最基本的功能。
OpenStack 希望基于这一项目实现不同OpenStack 商业解决方案之间的互操作性。
OpenStack 的云计算运营商可以选择在其云计算部署许多其它部件,但它们都必须通过测试所需要的最基本的功能。
根据OpenStack 官方网站显示,OpenStack 互操作性测试包括三项不同的官方许可程序,包含OpenStack 软件的产品都可以申请运行这些程序,通过者就可以获得“OpenStack Powered”官方标识。
三项官方的许可程序分别是,
●OpenStack Powered Platform
●OpenStack Powered Compute
●OpenStack Powered Object Storage。
其中,OpenStack Powered Platform 的测试结合了OpenStack Powered Compute 和OpenStack Powered Object Storage 的技术要求。
2. 互操作性测试工具- Refstack
Refstack 是一个工具集用于OpenStack 云之间的互操作性测试。
它由两部分组成:服务器和客户端。
Refstack 服务器通过API 收集来自私有云和公有云供应商的互操作性的测试数据,使用UI 展现用户上传的数据并查看前面提到的DefCore 定义的基本功能的测试结
果。
Refstack 客户端封装了OpenStack Tempest 测试框架,将运行Tempest API 测试,并会按照Refstack API 的期望来格式化测试结果,将数据上传到Refstack 服务器。
3. Refstack 客户端安装
refstack-client 可以被安装在Ubuntu、Centos, RHEL 和OpenSUSE 这些平台。
安装步骤如下:
∙确保操作系统已经安装了git 工具,如果没有,请先安装;
∙获取refstack client;
git clone https:///stackforge/refstack-client
∙进入refstack-client 目录;
cd refstack-client
∙运行如下代码进行安装;
./setup_env
4. 云环境资源配置
需要在待测云环境中创建如下资源用于测试:
∙用户:至少创建两个用户来自于不同的租户,例如名为demo1、demo2 的用户和租户。
∙镜像:需要两个镜像的id。
推荐使用cirros 镜像,这个镜像小而且可以提供你需要的所有功能。
可以上传这个镜像两次来产生两个id。
∙网络:创建一个共享网络可以被所有用户使用。
∙用户角色:创建一个非管理员的角色,并分配给所有的测试用户。
∙对象存储操作角色:如果要测试对象存储,需要创建一个角色可以用来创建swift 的资源。
5. Tempest 配置文件
在运行refstack-client 之前,需要针对你的云产品环境自定义一份Tempest 配置文件,名字以及存放的位置任意,在此文当中假设文件命名为tempest.conf。
在文件默认配置的基础上关注如下配置:
∙使用两个不同的镜像id 用来配置image_ref 和image_ref_alt。
[compute]
image_ref = 2eea58fe-6988-43f8-8183-da907c698211
image_ref_alt = 05df5478-8204-4737-befa-455da64f2ba9
∙用户:配置三个用户,其中一个是管理员。
[identity]
admin_password = admin
admin_tenant_name = admin
admin_username = admin
alt_password = demo2
alt_tenant_name = demo2
alt_username = demo2
password = demo1
tenant_name = demo1
username = demo1
∙日至:配置日至文件名及路径。
[default]
log_file = tempest.log
log_dir = /tmp
∙Resize 选项,这个是互操作性测试中必须要有的,默认是false。
需要设置成true。
[compute-feature-enabled]
resize = true
∙卷设备名称,可根据被测环境更改默认设置。
[compute]
volume_device_name = vdd
∙swift 操作角色,默认是Member 和ResellerAdmin。
需根据测试环境更改设置。
[object-storage]
operator_role = swiftoperator
reseller_admin_role = admin
如果没有标准的swift 角色,需要配置locking accounts:
[auth]
allow_tenant_isolation = false
test_accounts_file = etc/accounts.yaml
预先创建一些用户来自于不同的租户,然后在accounts.yaml 中配置,例如:∙
username: 'test1'
tenant_name: 'test1'
password: 'pass'
roles:
- '_member_'
- 'swiftoperator'
resources:
network: 'private-net'
∙
6. Refstack 测试执行
执行步骤如下:
∙进入refstack-client 目录;
cd ~/refstack-client
∙进入Python 虚拟环境;
source .venv/bin/activate
∙运行单个测试用例来验证你的安装
./refstack-client test -c <Path of tempest.conf> -vv -- tempest.api.identity.admin.v2.test_roles
∙运行所有API 测试
./refstack-client test -c <Path of tempest.conf> -vv
运行时控制台输出如下图
图 2.控制台输出
∙上传测试结果
./refstack-client upload <Path of results file>
上传的结果文件是测试结束后由refstack-client 产生的一个JSON 格式的文件,它保存在.tempest/.testrepository 这个路径下面,默认数据是上传到,上传完成之后可以到 查看。
7.测试身份
首批是通过基金会的邀请,现在可以在通过测试工具测试。