CentOS7上Docker搭建OpenStf环境
应用场景:
开始了解stf主要源自于当前移动端自动化过程中,发现执行机器上挂载的移动设备监控起来比较麻烦,有时候报错或调试需要跑到执行机所在的位置查看运行情况,有没有一种办法可以直接在自己位置上就能看到手机的运行情况呢?于是就在领导的指引下调研了一下该工具。
但其实这款工具还可以帮助解决公司内部移动设备资源不能充分利用的问题,如,公司移动设备其实是有限的,有的人借走了用完未及时归还,导致其他人就无法使用,而使用这款工具就可以统一监控公司的所有移动设备资源,使用者可在浏览器界面上查看哪些设备是空闲状态,在页面上就可以操作对应设备。
本文案例环境配置:
windows上通过VMware安装虚拟机CentOS7,然后安装docker,使用docker方式搭建。
CentOS如何搭建不在本文范围。
注意:windows系统不建议直接用docker的toolbox版本,会有很多问题。
Docker安装:
官方文档:https://docs.docker.com/engine/install/centos/
以下docker安装操作均来自官方:
卸载旧版本:
yum remove docker \安装要用到的仓库
yum install -y yum-utils
# 配置仓库(后续下载镜像的地址) #默认下载的地址是国外的(https://download.docker.com/linux/centos/docker-ce.repo ),可以换成阿里云的更快一些
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker相关的东西
#更新yum索引
yum makecache fast
#安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
安装过程中会出现两次让你输入y/n的地方,我选的y,然后就继续下载一些东西。
启动docker
systemctl start docker
# 使用该命令查看是否安装成功
docker version
# 运行官方的hello-world
docker run hello-world
# 查看hello-world是否启动成功
docker ps
上述环境都准备好以后,下面开始docker搭建openStf。
明确openStf连接设备的2种方式
主节点部署STF服务并允许远程访问API,子节点只需部署ADB,保证ADB 5037端口对外暴露即可。这种方案的优点是部署简单,而且子节点无需部署STF服务。缺点就是子节点新增机器需要在主节点重新运行STF命令以识别子节点上新增的机器。--【本文采用的方式】
主节点和子节点都部署STF服务并允许远程访问API。然后主节点连接子节点。这种方案的优点是子节点新增设备可以自动识别。缺点就是子节点也需要部署STF服务。
开始搭建
拉取镜像
启动镜像
访问stf
启动上述镜像后用windows直接访问http://192.168.20.130:7100访问不到,但不一定其他人的环境也访问不到,如图手机连接windows电脑
centos上进入docker内部执行如下操作
docker pull openstf/stf:latest //stf镜像
docker pull sorccu/adb:latest //adb镜像
docker pull rethinkdb:latest //rethinkdb镜像
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
//启动stf,注意ip[192.168.20.130]是stf对应服务器ip
docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.20.130