kolla-ansible-----rally模块
Rally简介
Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试。
通过使用Rally组件,用户可完成OpenStack云计算平台的安装部署、功能验证、大规模负载测试(性能测试)、输出测试报告等一系列动作。
Rally安装
在icos环境中,直接在globals.yml中开启rally。
enable_rally: "yes"
然后tag安装部署即可。
如果是性能测试设计主机关闭等操作,建议rally安装在一台非测试节点的机器。
安装完优化一下参数,rally配置文件位置:/etc/rally/rally.conf
默认注释所有选项,测试中遇到如下问题:
- 获取实例状态超时
- 连接超时
做如下设置,避免超时影响测试结果,时间设置1800s:
[DEFAULT]
openstack_client_http_timeout = 1800.0
[benchmark]
cinder_volume_create_timeout = 1800.0
cinder_volume_delete_timeout = 1800.0
nova_server_boot_timeout = 1800.0
nova_server_boot_timeout = 1800.0
rally使用
创建Deployment
对于已经安装部署了OpenStack系统,有两种方式创建deployment
1) 使用环境变量创建
(rally)[root@node135 ~]# more openrc
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=xxxx
export OS_AUTH_URL=http://100.2.28.139:35357
#生效一下
source openrc
#创建
rally deployment create --fromenv --name=existing

2) 使用json文件创建
rally deployment create--file=existing.json --name=existing
existing文件模板默认位置/rally-openstack/samples/deployments
existing.json文件内容如下:
{
"type":"ExistingCloud",
"auth_url": "http://10.25.*.*:35357/v3",
"region_name":"RegionOne",
"endpoint_type":"public",
"admin": {
"username":"admin",
"password": "****",
"tenant_name": "admin"
},
"users": [
{
"username": "nsp_test_1",
"password":"password",
"tenant_name":"nsp_tenant_1"
},
{
"username":"nsp_test_2",
"password":"password2",
"tenant_name":"nsp_tenant_2"
}
]
}
查看所有的deployment列表
rally deployment list

查看已经创建的deployment详情
rally deployment show existing
检查deployment
rally deployment check
检查创建的deployment各项服务是否正常,以下是执行结果

如果中途退出了环境,需要再次定义环境变量
rally deployment use existing
执行Task
Task是Rally执行的一个测试单元,执行Task时需要指定入口文件,可以是json文件或者yaml文件
如下是执行形式:
rally task start /rally-openstack/samples/tasks/scenarios/nova/boot_ljy.yaml
常用的场景
默认场景模板位置 /rally-openstack/samples/tasks/scenarios
创建与删除虚拟机
boot-and-delete.yaml
{% set flavor_name = flavor_name or "m1.tiny" %} #资源规格
---
NovaServers.boot_and_delete_server:
-
args:
flavor:
name: "{{flavor_name}}"
image:
name: "TestVM" #镜像名称
force_delete: false
runner:
type: "constant"
times: 10 #测试次数
concurrency: 2 #并发数
context:
users:
tenants: 3
users_per_tenant: 2
sla:
failure_rate:
max: 0
-
args:
flavor:
name: "{{flavor_name}}"
image:
name: "TestVM"
auto_assign_nic: true
runner:
type: "constant"
times: 10
concurrency: 2
context:
users:
tenants: 3
users_per_tenant: 2
network:
start_cidr: "192.168.190.0/24"
networks_per_tenant: 2
sla:
failure_rate:
max: 0
创建云盘
(rally)[root@control01 ljy]# more create-volume.yaml
---
CinderVolumes.create_volume:
-
args:
size: 1
runner:
type: "constant"
times: 3
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
-
args:
size:
min: 1
max: 5
runner:
type: "constant"
times: 3
concurrency: 2
context:
users:
tenants: 2
users_per_tenant: 2
sla:
failure_rate:
max: 0
创建与删除网络
(rally)[root@control01 ljy]# more create-and-delete-networks.yaml
---
NeutronNetworks.create_and_delete_networks:
-
args:
network_create_args: {}
runner:
type: "constant"
times: 10
concurrency: 1
context:
users:
tenants: 3
users_per_tenant: 3
quotas:
neutron:
network: -1
sla:
failure_rate:
max: 0
查看Task
可使用rally task list,来列出已经执行的task

生成Web测试报告
使用rally task report [task_id] --out=[outfile.html]可以生成web格式的测试报告
可能此时的html文件打开会有报错,原因是report.html文件中使用了一些css、js库,而这些库放在了google网站上,因此才会出现这么奇怪的现象。
需要将report.html里面如下四行中的libs网址:
<link rel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.css"> <script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script> <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.13/d3.min.js"></script> <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.js"></script>
替换为可以访问的bootcss静态库的libs网址,如下:
<link rel="stylesheet"href="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.css"> <script type="text/javascript"src="http://cdn.bootcss.com/angular.js/1.3.3/angular.min.js"></script> <script type="text/javascript"src="http://cdn.bootcss.com/d3/3.4.13/d3.min.js"></script> <script type="text/javascript"src="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.min.js"></script>
之后就可以打开了。或者直接将report.html模板文件的对应行修改掉,这样生成的报告web页面都会自动替换。
模板文件位置:/usr/lib/python2.7/site-packages/rally/ui/templates/task/report.html
上面的命令执行成功,可以看到生成的Html文件,在浏览器中可查看Html文件。展示效果如下:

kolla-ansible-----rally模块的更多相关文章
- ansible服务模块和组模块使用
本篇文章主要是介绍ansible服务模块和组模块的使用. 主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关 ...
- ansible常用模块用法
ansible常用模块用法 2015-07-21 10:25 24458人阅读 评论(1) 收藏 举报 分类: Linux(44) ansible 版权声明:本文为博主原创文章,未经博主允许不得 ...
- Linux之ansible 常用模块
目的 代码发布系统 代码发布:把本地的代码通过某些方式弄到线上,可以供别人访问 部署 前戏 ansible 批量在远程主机上执行命令 puppet ruby ansible saltstack pyt ...
- Ansible常用模块介绍及使用(week5_day1_part2)--技术流ken
Ansible模块 在上一篇博客<Ansible基础认识及安装使用详解(一)--技术流ken>中以及简单的介绍了一下ansible的模块.ansible是基于模块工作的,所以我们必须掌握几 ...
- Ansible常用模块命令
Ansible常用模块命令 一.安装ansible yum install epel-release yum install ansible 二.配置文件配置 vi /etc/ansible/ansi ...
- ansible 常用模块的使用
安装 yum -y install ansible 配置文件/etc/ansible/hosts 模块介绍与使用 ping模块 [root@node1 config]# ansible k8s -m ...
- Ansible 常见模块介绍
目录 Ansible 常见模块介绍 ping 模块 command 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 service 模块 shell 模块 sc ...
- Ansible 常用模块(一)
一.Ansible简介 Ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet(ruby).cfengine.chef.func.fabric.)的优点,实现了 ...
- ansible核心模块playbook介绍
ansible的playbook采用yaml语法,它简单地实现了json格式的事件描述.yaml之于json就像markdown之于html一样,极度简化了json的书写.在学习ansible pla ...
- ansible的模块使用
转载于 https://www.cnblogs.com/franknihao/p/8631302.html [Ansible 模块] 就如python库一样,ansible的模块也分成了基本模块和 ...
随机推荐
- 第 七 课 go的运算符
http://www.runoob.com/go/go-operators.html 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 返回变量存储地址: & 指针变量: ...
- 使用DOS指修改文件名
需求:将文件名中的特殊字符#和~去掉 文件夹路径如下: 开始->运行->在对话框中输入字母“cmd”,进入dos模式 输入命令行“cd c:\test”然后回车,再输入命令行“dir /b ...
- 第五篇 elasticsearch express插入数据
1.后端 在elasticsearch.js文件夹下添加: function addDocument(document) { return elasticClient.index({ index: i ...
- Flask02 路由的书写、蓝图、利用蓝图实现url前缀、利用蓝图实现子域名、访问静态文件
1 书写路由的两种方法 1.1 利用Flask实例对象的 add_url_rule 方法实现 该方法有一个必填参数,两个默认参数 · rule : 请求路径的规则 endpoint : 端点,默认值是 ...
- 自定义map对象,用于再不支持es6的map的时候
function Map() { this.elements = new Array(); // 获取Map元素个数 this.size = function ...
- Umbraco back office 中templates显示不出来问题解决 (一片空白)
在公司一个项目中,遇到一个问题,登录Umbraco back office,该项目的settings => Templates 已经有该项目的10几个view (templates), 但是,点 ...
- JavaScript中创建对象的三种模式
JS中,便于批量创建对象的三种模式: 1.工厂模式:用一个函数封装创建对象的细节,传入必要的参数,在函数内部new一个对象并返回. 缺点:创建的对象无法识别类型(全是Object) 2.构造函数模式: ...
- 常见的web漏洞及其防范
原文地址:http://blog.csdn.net/u013777676/article/details/52124298 一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻 ...
- Cocos creator之javascript闭包
.什么是闭包? 闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. 作为一个函数变量的一个引用,当函数返回 ...
- Boost Python学习笔记(一)
开发环境搭建 下载源码 boost_1_66_0.tar.gz 生成编译工具 # tar axf boost_1_66_0.tar.gz # cd boost_1_66_0 # yum install ...
