getcarrier/control_towerControl Tower是一个作业分发执行器,主要用于CI(持续集成)作业中,负责分配和管理各类任务的执行。它通过与Redis交互实现任务队列管理,支持多种任务类型(如SAST、DAST、性能测试等),并可配置并行工作器数量以优化执行效率。
适用于CI/CD流程中的任务分发与执行,特别适合需要调度多种类型测试任务(如静态应用安全测试、动态应用安全测试、性能测试等)的场景。可集成到持续集成流水线中,实现自动化任务分配、执行与结果管理。
通过以下环境变量配置Control Tower与Redis的连接:
REDIS_HOST:Redis服务器主机地址(必填)REDIS_PORT:Redis服务器端口(默认:6379)REDIS_USER:Redis认证用户(默认:空字符串)REDIS_PASSWORD:Redis认证密码(默认:password)REDIS_DB:任务使用的Redis数据库编号,多租户场景下有用(默认:1)执行时支持以下命令行参数:
-c:运行作业的容器名称,例如 getcarrier/dusty:latest-e:作业执行参数,JSON格式字符串,示例:
json{ "host": "localhost", "port": "443", "protocol": "https", "project_name": "MY_PET", "environment": "stag", "test_type": "basic" }
-t:任务类型,例如 sast、dast、perf-jmeter、perf-ui、observer-n:作业名称(唯一标识,如 %JOBNAME%_%JOBID%)-q:并行工作器数量bashdocker run -t --rm \ -e REDIS_HOST=localhost getcarrier/control_tower:latest \ -c getcarrier/dast:latest \ -e '{"host": "localhost", \ "port": 443, "protocol": "https", \ "project_name": "TEST_PROJ", \ "environment": "stag", "test_type": "basic"}' \ -t dast -n supertestjob -q 1
bashdocker run -t --rm \ -e REDIS_HOST=192.168.0.107 \ -e token="auth token here" \ -e galloper_url="http://localhost/api/v1" \ -e bucket="reports" \ -e project_id=1 \ getcarrier/control_tower:latest \ -c getcarrier/observer:latest \ -e '{ "cmd": "-f data.zip -sc /tmp/data/webmail.side", "REMOTE_URL": "localhost:4444", "LISTENER_URL": "localhost:9999"}' \ -r 1 -t observer -q 1 -n web_perf -j true
bashdocker run -t --rm \ -e project_id=1 \ -e REDIS_HOST=192.168.0.107 \ -e galloper_url=[***] \ -e token="auth token here" getcarrier/control_tower:latest --test_id ${galloper_test_id}
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务