|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| agent | ||
| build.sh | ||
| go.mod | ||
| licence-tool | ||
| licence-tool.go | ||
| main.go | ||
| rsa_private.pem | ||
| rsa_private.pem.b64 | ||
| rsa_private_b64.txt | ||
| rsa_public.pem | ||
| rsa_public.pem.b64 | ||
README.md
Hardware Agent
宿主机硬件信息获取 Agent,用于 licence-client 容器部署时的硬件信息验证。
功能
- 获取服务器真实硬件信息(MAC、IP、CPU序列号、主板序列号)
- 提供 HTTP API 给容器内的 licence-client 调用
- 支持 Linux 和 Windows
使用方法
1. 编译
chmod +x build.sh
./build.sh
或手动编译:
# Linux
CGO_ENABLED=0 go build -ldflags="-s -w" -o hardware-agent main.go
# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o hardware-agent.exe main.go
2. 部署
把编译好的二进制文件上传到宿主机:
scp hardware-agent-linux-amd64 user@your-server:/usr/local/bin/hardware-agent
ssh user@your-server "chmod +x /usr/local/bin/hardware-agent"
3. 启动
# 方式1:直接运行(前台)
./hardware-agent serve
# 方式2:后台运行
nohup ./hardware-agent serve > /var/log/hardware-agent.log 2>&1 &
# 方式3:指定端口
nohup ./hardware-agent serve 8899 > /var/log/hardware-agent.log 2>&1 &
4. 验证
# 测试 Agent 是否正常运行
curl http://127.0.0.1:8899/health
# 获取硬件信息
curl http://127.0.0.1:8899/api/hardware-info
5. 停止
pkill hardware-agent
API 接口
| 接口 | 方法 | 说明 |
|---|---|---|
/health |
GET | 健康检查,返回 "ok" |
/api/hardware-info |
GET | 获取硬件信息,返回 JSON |
响应示例
{
"macAddress": ["00:1A:2B:3C:4D:5E"],
"ipAddress": ["192.168.1.100"],
"cpuSerial": "ABC123DEF456",
"mainBoardSerial": "XYZ789"
}
容器内调用
licence-client 需要配置 Agent 的地址来获取硬件信息:
license:
hardwareConfigPath: /data/license/hardware-info.properties
agentApiUrl: http://host.docker.internal:8899/api/hardware-info
注意:host.docker.internal 是 Docker 提供的特殊 DNS,指向宿主机的 IP。