server是使用docker-compose进行部署

agent是使用java直接运行

server端部署

下载源码:sonic

解压到你想要放置的目录,这个目录同时也是docker容器的映射目录

进入目录

cd /mnt/sonic
unzip xxxxxx.zip #解压刚刚下载的压缩文件

修改docker-compose文件不用改

修改.env文件

nano docker-compose.yml

修改这几个地方

请输入图片描述

IP地址修改为本机的IP地址

数据库提前安装好,mysql5.7,然后创建好sonic数据库,数据库的帐号密码,数据库的地址和端口都改成自己安装的信息。

.env配置详解

字段名解释示例
SONIC_SERVER_HOST部署 sonic-server 机器的 ipv4 地址,不能使用 localhost、127.0.0.1。可以使用域名。192.168.0.1
SONIC_SERVER_PORT整个服务端对外暴露端口,默认 3000。可以使用 803000
SONIC_EUREKA_USERNAMEEureka 的用户名(为提高安全性,不建议使用默认值,可以更改为其他任意字符串,不能含@%sonic
SONIC_EUREKA_PASSWORDEureka 的密码(为提高安全性,不建议使用默认值,可以更改为其他任意字符串,不能含@%sonic
SONIC_EUREKA_PORTEureka 启动端口(一般不需要改动)9090
MYSQL_HOSTMySQL 服务的 host,不能使用 localhost、127.0.0.1.192.168.0.1
MYSQL_PORTMySQL 服务的端口(一般默认为 3306)3306
MYSQL_DATABASESonic 服务要用到的数据库sonic
MYSQL_USERNAMEMySQL 数据库用户名root
MYSQL_PASSWORDMySQL 数据库密码Sonic!@#123
SECRET_KEYtoken 加密密钥(为提高安全性,不建议使用默认值,可以更改为其他任意字符串)sonic
EXPIRE_DAYtoken 有效天数14
PERMISSION_ENABLE是否开启权限配置true
PERMISSION_SUPER_ADMIN超管用户名sonic
REGISTER_ENABLE是否开启用户注册true
NORMAL_USER_ENABLE是否开启普通用户登录true
LDAP_USER_ENABLE是否开启 LDAP 用户登录true
LDAP_USER_IDLDAP user id 搜索字段cn
LDAP_BASE_DNLDAP user 搜索用户组users
LDAP_BASELDAP Base DNou=system
LDAP_USERNAMELDAP Base DN 管理员用户名uid=admin,ou=system
LDAP_PASSWORDLDAP Base DN 管理员密码Sonic!@#123
LDAP_URLLDAP 服务 URLldap://192.168.0.1:10389
LDAP_OBJECT_CLASSLDAP 筛选 class,默认为 personperson

保存,退出

然后开始启动服务

docker-compose up -d
#或者
docker compose up -d
#取决于你的docker-compose的版本,v2版本的没有中间的横杠

等待服务启动,然后访问IP:4000就可以访问web界面了

注册一个帐号,帐号密码按照你自己的需求填写

创建项目

然后创建agent

填写agent名称即可自动创建agent,记住AgentKey,后续部署sonic agent的时候会用到

请输入图片描述

Agent端部署

我使用的是jar方式部署

最低启动要求为JDK17

ubuntu20.04安装jdk17

apt update
apt-cache search openjdk

会输出一连串,然后找到openjdk-17-jdk - OpenJDK Development Kit (JDK)

apt install openjdk-17-jdk -y

等待安装完毕,安装完毕之后查看jdk版本

java -version

然后下载sonic-agent文件

cd /mnt/sonic/agent
#目前的最新版本,后续有更新可以自己到releases里面找更新的版本
wget https://ghproxy.com/https://github.com/SonicCloudOrg/sonic-agent/releases/download/v2.6.3/sonic-agent-v2.6.3-linux_x86_64.zip

赋予工作目录所有权限,然后确保解压后的 mini、config、plugins 文件夹与 jar 同级

cd /mnt/sonic
chmod -R 777 agent

修改 config 文件夹中 application-sonic-agent.yml 的配置信息,保存。

sonic:
  agent:
    #替换为部署Agent机器的ipv4
    host: 192.168.1.1
    #替换为Agent服务的端口,可以自行更改
    port: 7777
    #替换为前端新增Agent生成的key
    key: XXXXX-XXXXX-XXXXXX-XXXXXX
  server:
    #改成server的SONIC_SERVER_HOST
    host: 192.168.1.1
    #改成server的SONIC_SERVER_PORT
    port: 3001

#以下未来会迁移到server配置
modules:
  android:
    #是否开启安卓模块
    enable: true
    #是否开启远程adb功能
    use-sas: true
  ios:
    #替换为wda的bundleId,如果没有.xctrunner后缀会自动补全
    wda-bundle-id: com.sonic.WebDriverAgentRunner
  sgm:
    #是否开启网络抓包功能
    enable: true

根据注释按需修改

因为是java直接运行,需要使用窗口程序,我这里使用的screen

apt update
apt install screen -y
screen -R sonic
cd /mnt/sonic/agent

执行以下指令开启agent服务

java -Dfile.encoding=utf-8 -jar sonic-agent-xxxx.jar#最后这里替换成你下载的具体的jar程序的名称

虽然官方文档说他们内置了adb服务,但是我启动的时候adb没有工作,我在自己机子上面安装adb

apt update
apt install adb -y
adb devices
adb connect 192.168.x.x:5555#我的需求是远程调试,所以这里连接到远程设备

如果是usb直接连接,直接连手机,然后允许usb调试就可以了。

然后回到web界面,选择设备中心就出来了

请输入图片描述

Enjoy!

Last modification:January 26th, 2024 at 05:33 pm
如果觉得我的文章对你有用,请随意赞赏