OpenStf的搭建以及分佈式部署的實現

1、OpenStf是什麼?

OpenStf是一個能夠經過網頁管理和使用移動設備的平臺,支持遠程調試、遠程使用手機瀏覽器打開連接、遠程執行shell腳本、遠程拖拽安裝App、遠程查看日誌、遠程截屏等功能。 docker

image.png

2、OpenStf的搭建以及無縫接入Ldap

(1)MAC環境安裝

MAC上安裝建議使用npm的方式安裝,這種方式很簡單,惟一的要求就是Node版本必定要是8的版本,我採用的是8.9.3版本。若是你的電腦中已經有Node其餘版本,則建議使用NVM切換版本。shell

安裝步驟以下:
nvm use 8.9.3 
複製代碼
npm install -g stf
複製代碼
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
複製代碼
啓動腳本以下: runOpenStf.sh
. ~/.nvm/nvm.sh
nvm use 8.9.3 
rethinkdb & stf local --public-ip 192.168.27.180
複製代碼

上面的腳本里192.168.27.180是我本機的IP,則我對外暴露個人IP地址,其餘機器則能夠直接經過http://192.168.27.180:7100訪問STF平臺。 平臺啓動完成,直接把設備插入電腦USB及能夠自動識別。npm

Ldap的無縫接入

接入Ldap,只須要在STF啓動腳本加入Ldap參數便可。瀏覽器

#!/bin/sh
. ~/.nvm/nvm.sh
nvm use 8.9.3
rethinkdb & stf local --public-ip 192.168.27.180 --auth-type ldap \
--auth-options '["--ldap-url","ldap://192.168.xx.xxx","--ldap-bind-dn","cn=ldapuser,cn=xxxx,dc=xxxxx,dc=xxxx","--ldap-search-dn","cn=xxx,dc=xxx,dc=xxx","--ldap-bind-credentials","xxxxxx","--ldap-search-class","user","--ldap-search-field","mail"]' 
複製代碼

具體Ldap參數定義參照:testerhome.com/topics/3906bash

(2)Linux環境的安裝

Linux上則能夠直接經過Docker的方式安裝markdown

拉取相關鏡像
$  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
複製代碼
$ docker run -d --name stf --net host openstf/stf stf local --public-ip 192.168.27.200
複製代碼

全部容器啓動完成以後,便可經過 http://192.168.27.200:7100訪問平臺,插上設備便可使用訪問。tcp

3、STF平臺的分佈式部署

STF分佈式有2種方案,方案以下:分佈式

  • 主節點部署STF服務並容許遠程訪問API,子節點只需部署ADB,保證ADB 5037端口對外暴露便可。這種方案的優勢是部署簡單,並且子節點無需部署STF服務。缺點就是子節點新增機器須要在主節點從新運行STF命令以識別子節點上新增的機器。
  • 主節點部署STF服務並容許遠程訪問API,子節點也部署STF服務並容許遠程訪問API。而後主節點鏈接子節點。這種方案的優勢是子節點新增設備能夠自動識別。缺點就是子節點也須要部署STF服務。
    分佈式部署.png
第一種狀況,以Window子節點爲例

(1)開啓ADB,並對外暴露5037端口ide

adb nodaemon server -a -P 5037
複製代碼

若是出現adb端口被佔用的狀況,則經過命令查找5037端口占用進程並殺死進程便可。oop

netstat -aon|findstr 5037
複製代碼
taskkill /pid 5008 /f
複製代碼

(2)到MAC Master主節點運行stf provider命令鏈接Window子節點

Window的IP爲:192.168.27.247,MAC機器IP爲:192.168.27.180

stf provider --name GHL.local --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 \
--connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 192.168.27.180 \
--storage-url http://localhost:7100/ \
--adb-host 192.168.27.247 --adb-port 5037 \
--vnc-initial-size 600x800 --mute-master never --allow-remote
複製代碼

上面這麼多參數,能夠查看Master主節點STF啓動日誌便可查到,這裏主要就是經過新增

--adb-host 192.168.27.247 --adb-port 5037 \
複製代碼

來鏈接Window機器。

第二種狀況,以Linux子節點爲例

Linux上部署一個STF服務並運行遠程訪問API,Linux的IP爲:192.168.27.200,MAC機器IP爲:192.168.27.180 那麼咱們只需在Linux上運行stf provider鏈接Master節點便可,命令以下:

stf provider --name centerOs.local --min-port 7400 --max-port 7700 \ 
--connect-sub tcp://192.168.27.180:7114 --connect-push tcp://192.168.27.180:7116 \
--group-timeout 20000 --public-ip 192.168.27.180 --storage-url http://192.168.27.180:7100/ \ 
--vnc-initial-size 600x800 --allow-remote
複製代碼

這裏能夠看到無需輸入adb遠程端口,此時Linux節點上插入機器,Master節點就能夠實時的查看到Linux上掛載的機器。而無需在Master節點從新輸入stf provider命令。

相關文章
相關標籤/搜索