我对 GGR 和 Selenoid 有一些问题。我尝试设置并遵循文档,以下是我尝试在 Linux 机器上设置 GGR 的两种方法。我们有三台服务器 selenoid1、selenoid2 和 selenod3。我在 selenoid3 服务器上配置 GGR
- 根据公司提供的文档进行设置以配置 GGR
配额文件和htpasswd按照官网描述创建,配额文件包含主机selenoid1和selenoid2服务器,selenoid3作为GGR服务器
在所有三个服务器上启动 Selenoid:
docker run -d --name selenoid -p 4444:4444 -e TZ=Etc/GMT+0 -e OVERRIDE_VIDEO_OUTPUT_DIR=/usr/local/selenoid/video/ -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/selenoid/config:/etc/selenoid/:ro -v /usr/local/selenoid/logs:/opt/selenoid/logs -v /usr/local/selenoid/video:/opt/selenoid/video aerokube/selenoid:latest-release -video-output-dir /opt/selenoid/video -timeout 3m0s -limit 8
在 selenoid3 服务器上启动 GGR:
docker run -d --name ggr -p 4445:4444 -v /etc/grid-router:/etc/grid-router:ro aerokube/ggr:latest-release -guests-allowed -guests-quota /etc/grid-router/quota/auto
在 selenoid3 服务器上启动 GGR-UI:
docker run -d --name ggr-ui -p 8888:8888 -v /etc/grid-router/quota/:/etc/grid-router/quota:ro aerokube/ggr-ui:latest-release
在所有三个服务器上启动 Selenoid-UI:
docker run -d --name selenoid-ui -p 8081:8080 --link ggr-ui aerokube/selenoid-ui:latest-release --selenoid-uri http://ggr-ui:8888
使用上面的配置,当我运行测试时curl http://auto:password@#{ggr_servername}:4445/status
,我得到404 page not found
它没有连接到 GGR 并给出500
错误。我还重新启动了所有容器,但仍然出现同样的错误
GGR-ui 日志:
2021/07/02 21:10:32 [INIT] [Loading quota files from /etc/grid-router/quota]
2021/07/02 21:10:32 [INIT] [Listen on :8888]
GGR 日志:
2021/07/02 22:00:28 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Users file is "/etc/grid-router/users.htpasswd"]
2021/07/02 22:00:28 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Loading configuration files from "/etc/grid-router/quota"]
- 根据我基于 GGR 网站上的官方指南的理解
配额文件和htpasswd按照官网描述创建,配额文件包含主机selenoid1和selenoid2服务器,selenoid3作为GGR服务器
在所有三台服务器上启动 Selenoid:
docker run -d --name selenoid -p 4444:4444 -e TZ=Etc/GMT+0 -e OVERRIDE_VIDEO_OUTPUT_DIR=/usr/local/selenoid/video/ -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/selenoid/config:/etc/selenoid/:ro -v /usr/local/selenoid/logs:/opt/selenoid/logs -v /usr/local/selenoid/video:/opt/selenoid/video aerokube/selenoid:latest-release -video-output-dir /opt/selenoid/video -timeout 3m0s -limit 8
在 selenoid3 服务器上启动 GGR:
docker run -d --name ggr -v /etc/grid-router:/etc/grid-router:ro aerokube/ggr:latest-release -guests-allowed -guests-quota /etc/grid-router/quota/auto
在 selenoid3 服务器上启动 GGR-UI:
docker run -d --name ggr-ui -p 8888:8888 -v /etc/grid-router/quota/:/etc/grid-router/quota:ro aerokube/ggr-ui:latest-release
在所有三个服务器上启动 Selenoid-UI:
docker run -d --name selenoid-ui -p 8081:8080 aerokube/selenoid-ui:latest-release --selenoid-uri http://#{ggr_servername}:8888
日志 GGR:
2021/07/02 20:51:55 [STATUS] [Failed to fetch status: Get http://#{selenoid1_name}:4444/status: dial tcp: lookup #{selenoid1} on #{selenoid1_ip}: no such host] [172.17.0.1]
2021/07/02 20:51:56 [SHUTDOWN] [Shutting down in 5m0s]
2021/07/02 21:05:00 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Users file is "/etc/grid-router/users.htpasswd"]
2021/07/02 21:05:00 [-] [-] [INIT] [-] [-] [-] [-] [-] [-] [Loading configuration files from "/etc/grid-router/quota"]
日志抱怨 Selenoid1 没有 Selenoid2 的此类详细信息,我假设 Selenoid2 正在工作并成功连接。
日志 GGR-UI
2021/07/02 22:54:37 [INIT] [Loading quota files from /etc/grid-router/quota]
2021/07/02 22:54:37 [INIT] [Listen on :8888]
通过上面的配置,当我运行时,curl http://auto:password@#{ggr_servername}:4444/status
我得到了预期的 JSON 响应,并且我能够运行测试,但是测试正在 Selenoid3 服务器上执行,chrome 浏览器和 vnc 容器在 selenoid3 服务器上启动,我期待测试将在 Selenoid1 或 Selenoid2 上执行服务器,但这永远不会发生。我不确定我的配置有什么问题,是我遗漏了什么吗?
我感谢您的帮助!!!