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。可以使用 80 | 3000 |
SONIC_EUREKA_USERNAME | Eureka 的用户名(为提高安全性,不建议使用默认值,可以更改为其他任意字符串,不能含@ 和% ) | sonic |
SONIC_EUREKA_PASSWORD | Eureka 的密码(为提高安全性,不建议使用默认值,可以更改为其他任意字符串,不能含@ 和% ) | sonic |
SONIC_EUREKA_PORT | Eureka 启动端口(一般不需要改动) | 9090 |
MYSQL_HOST | MySQL 服务的 host,不能使用 localhost、127.0.0.1. | 192.168.0.1 |
MYSQL_PORT | MySQL 服务的端口(一般默认为 3306) | 3306 |
MYSQL_DATABASE | Sonic 服务要用到的数据库 | sonic |
MYSQL_USERNAME | MySQL 数据库用户名 | root |
MYSQL_PASSWORD | MySQL 数据库密码 | Sonic!@#123 |
SECRET_KEY | token 加密密钥(为提高安全性,不建议使用默认值,可以更改为其他任意字符串) | sonic |
EXPIRE_DAY | token 有效天数 | 14 |
PERMISSION_ENABLE | 是否开启权限配置 | true |
PERMISSION_SUPER_ADMIN | 超管用户名 | sonic |
REGISTER_ENABLE | 是否开启用户注册 | true |
NORMAL_USER_ENABLE | 是否开启普通用户登录 | true |
LDAP_USER_ENABLE | 是否开启 LDAP 用户登录 | true |
LDAP_USER_ID | LDAP user id 搜索字段 | cn |
LDAP_BASE_DN | LDAP user 搜索用户组 | users |
LDAP_BASE | LDAP Base DN | ou=system |
LDAP_USERNAME | LDAP Base DN 管理员用户名 | uid=admin,ou=system |
LDAP_PASSWORD | LDAP Base DN 管理员密码 | Sonic!@#123 |
LDAP_URL | LDAP 服务 URL | ldap://192.168.0.1:10389 |
LDAP_OBJECT_CLASS | LDAP 筛选 class,默认为 person | person |
保存,退出
然后开始启动服务
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!