固定链接 Teuthology架构

Teuthology架构

Teuthology架构

Teuthology架构

自动化测试框架流程大致如下:

teuthology

软件组成

Teuthology 测试框架所使用到的软件组成如下:

  • Jenkins 持续集成工具
  • teuthology Ceph 测试套件
  • shaman 查询提供软件包的 chacra 节点,水平扩展和调度 chacra 节点
  • chacra 提供不同架构二进制包或文件的管理 REST API 接口

Teuthology部署

部署paddles/pulpito node

安装依赖

配置postgresql数据库

初始化数据库

postgresql安装并启动后,会自动生成postgres用户

//按照输出的提示输入密码即可

创建数据库实例paddles、shaman

安装配置paddles

创建paddles用户,并克隆paddles项目

修改配置文件,paddles中有配置文件的例子,只需要复制一份并修改即可。

需要修改的内容

修改/var/lib/pgsql/data/pg_hba.conf,解决初始化paddles环境时的报错Ident authentication failed。

修改完后,保存并退出。然后安装相关依赖,初始化环境。

配置数据迁移工具

通过supervisord部署paddles服务

安装配置pulpito

创建pulpito用户,切换到pulpito用户进行部署

修改配置文件,paddles中有配置文件的例子,只需要复制一份并修改即可。

主要的修改部分如下:

修改完后,保存并退出。然后安装相关依赖。

通过supervisord部署pulpito服务

在浏览器或者终端,访问 http://{ip}:8080/和http://{ip}:8081/就可以了,看到如下界面:

pulpito

部署shaman

shaman的部署方式分为两种一种是手动部署,另一种通过ansible,在此采用的是手动部署。

安装相关依赖

安装RabbitMQ

部署shaman

创建shaman用户,并克隆shaman项目,然后创建沙盒环境。

安装一些在requirements.txt中没有的软件依赖

修改配置文件config/dev.py。

修改config/run.py,需要修改的内容为,其中服务IP根据具体改动:

初始化环境

配置数据迁移工具

配置supervisord

通过supervisord部署shaman服务

启动shaman服务

检测服务

在浏览器或者终端,访问 http://{ip}:8082/就可以了,看到如下界面:

shaman

部署chacra

chacra的部署较为复杂,采取的是ansible的方式,但是官方提供的部署文件是针对ubuntu系统的,需要进行改动。

修改playbooks相关文件

修改deploy/playbooks/examples/deploy_test.yml中对应参数

修改deploy/playbooks/roles/common/tasks/letsencrypt.yml

修改deploy/playbooks/roles/common/tasks/rabbitmq.yml

修改deploy/playbooks/roles/common/tasks/systemd.yml

修改deploy/playbooks/roles/common/templates/systemd/chacra-celery.service.j2

部署chacra

使用ansible-playbook部署ansible服务

检查服务

在浏览器或者终端,访问 http://{ip}:8083/就可以了,看到如下界面:

chacra

Teuthology Node

Teuthology部署中官方建议为两个角色scheduler和worker。

创建/etc/teuthology.yaml

内容如下:

安装依赖

yum -y install git python-devel python-pip python-virtualenv libevent-devel libvirt-python beanstalkd

启动beanstackd队列:

部署teuthology

创建teuthology与teuthworker两个用户:

分别给两个账号授予passwordless sudo access权限:

scheduler

worker

使用worker_start来启动一个plana的工作进程

配置teuthology和teuthworker用户与test nodes间的免密登录

Test Nodes

添加ubuntu用户

在每个test node上创建ubuntu用户,并为ubuntu用户授予passwordless sudo access权限。

配置ssh

安装依赖

submitting nodes

在paddles中注册test nodes

修改create_nodes.py

日志服务器部署
添加nginx服务配置

重启nginx服务

修改paddles配置中的job_log_href_templ的值为:

作者:路锦博

您的留言将激励我们越做越好