定义 Linux Agent 从零开始时,第一阶段应该优先完成的模块、接口、数据结构和验证顺序。
第一阶段目标不是立即改 IP,而是先把“发现 + 连接 + 读取状态”整条只读链路打通。
第一阶段只实现以下能力:
第一阶段暂不实现:
netplan 写入GET /api/health用途:
最低返回:
GET /api/device/info用途:
最低返回:
GET /api/network/interfaces用途:
最低返回:
management_interfacesuggested_target_interfacerequires_target_selectioninterfaces[]要求:
discover 请求要求:
request_id169.254.100.2auth_required=trueconfig先完成一个最小配置模块,至少输出:
48888--ip 与 --port 启动参数--password 启动参数,默认密码为 Dt123$建议示例:
./quickip-agent --ip 169.254.100.2 --port 48888 --password 'Dt123$'
logger提供统一日志入口。
最低要求:
deviceinfo负责提供:
network/interfaces这是第一阶段最关键模块之一。
最低要求:
auth最低要求:
169.254.0.0/16X-Admin-Passwordhttpserver最低要求:
authdiscovery最低要求:
deviceinfo建议字段:
type AgentConfig struct {
HttpPort int
UdpPort int
MaintenanceIP string
MaintenanceCIDR string
AdminPassword string
Version string
}
建议字段:
type DeviceInfo struct {
DeviceID string
Hostname string
OSVersion string
AgentVersion string
UptimeSeconds int64
}
建议字段:
type NetworkInterface struct {
Name string
SystemName string
Role string
LinkUp bool
IsManagement bool
IsSuggestedTarget bool
MAC string
IPv4 []IPv4Address
Gateway string
DNS []string
}
建议字段:
type IPv4Address struct {
Address string
Prefix int
Source string
}
建议字段:
type InterfacesResponse struct {
ManagementInterface string
SuggestedTargetInterface string
RequiresTargetSelection bool
Interfaces []NetworkInterface
}
建议优先创建:
agent/
cmd/
quickip-agent/
internal/
config/
logger/
auth/
deviceinfo/
discovery/
httpserver/
network/
interfaces/
在 Windows 客户端开始联调前,Agent 至少应满足:
建议按下面顺序验证:
GET /api/healthGET /api/device/infoGET /api/network/interfaces满足以下条件即可认为第一阶段完成:
第一阶段完成后,再进入第二阶段:
GET /api/network/configPOST /api/network/validatePOST /api/network/applyPOST /api/network/rollbackGET /api/tasks/{task_id}也就是先把“只读链路”做稳,再开始改配置。