节点在线、应用在线、配置在线使用令牌查询
大石头 authored at 2021-12-16 19:49:30
7.94 KiB
Stardust
# StarAgent远程部署 - 架构图 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 用户浏览器 │ │ (StarWeb Interface) │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ 远程部署表单 │ │ │ │ • 目标主机 (IP/CIDR网段) │ │ │ │ • SSH连接信息 (用户名/密码/端口) │ │ │ │ • 系统选择 (Linux/Windows) │ │ │ │ • .NET版本 (8/9/10) │ │ │ │ • 服务器地址 │ │ │ │ • 执行位置选择 (StarServer/StarWeb) │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ │ HTTP POST /AgentDeploy/Deploy ↓ ┌─────────────────────────────────────────────────────────────────┐ │ StarServer │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ AgentDeployController │ │ │ │ • POST /AgentDeploy/Deploy │ │ │ │ • POST /AgentDeploy/TestConnection │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ │ ↓ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ AgentDeployService │ │ │ │ • ParseHosts() - 解析IP/CIDR │ │ │ │ • DeploySingle() - 单机部署 │ │ │ │ • GenerateLinuxScript() - 生成Linux脚本 │ │ │ │ • GenerateWindowsScript() - 生成Windows脚本 │ │ │ │ • ExecuteCommand() - 执行SSH命令 │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ │ SSH + bash/powershell ↓ ┌─────────────────────────────────────────────────────────────────┐ │ 目标服务器群组 │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Linux Server │ │ Linux Server │ │Windows Server│ │ │ │ 192.168.1.10 │ │ 192.168.1.11 │ │ 192.168.1.20 │ │ │ │ │ │ │ │ │ │ │ │ 1. 安装.NET │ │ 1. 安装.NET │ │1. 下载Agent │ │ │ │ 2. 下载Agent │ │ 2. 下载Agent │ │2. 停止旧版本 │ │ │ │ 3. 解压安装 │ │ 3. 解压安装 │ │3. 解压安装 │ │ │ │ 4. 配置服务 │ │ 4. 配置服务 │ │4. 安装服务 │ │ │ │ 5. 启动服务 │ │ 5. 启动服务 │ │5. 启动服务 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ │ 连接并注册 ↓ ┌─────────────────────────────────────────────────────────────────┐ │ StarServer (星尘服务器) │ │ • 节点管理 │ │ • 配置中心 │ │ • 应用监控 │ └─────────────────────────────────────────────────────────────────┘ ``` ## 数据流 1. **用户操作** → StarWeb表单输入 2. **Web → Server** → HTTP API调用 (JSON) 3. **Server处理** → 解析主机列表、生成部署脚本 4. **SSH执行** → 批量SSH到目标服务器 5. **远程安装** → 自动下载、安装、配置StarAgent 6. **结果返回** → 每个主机的部署状态 7. **UI展示** → 可视化结果,查看详细日志 ## 核心功能模块 ### 1. 网段解析 (ParseCIDR) - 支持 CIDR 格式: `192.168.1.0/24` - 自动计算网段内所有IP - 限制最多1024个IP防止误操作 ### 2. 脚本生成 **Linux:** ```bash #!/bin/bash # 安装.NET运行时 curl http://x.newlifex.com/dotnet/net9.sh | bash # 下载StarAgent wget http://x.newlifex.com/star/staragent90.tar.gz tar -xzf staragent90.tar.gz -C agent # 安装服务 cd agent dotnet StarAgent.dll -install -server http://server:6600 systemctl start staragent ``` **Windows:** ```powershell # 下载StarAgent Invoke-WebRequest -Uri $url -OutFile $zipFile Expand-Archive -Path $zipFile -DestinationPath $agentPath # 安装服务 dotnet StarAgent.dll -install -server http://server:6600 Start-Service staragent ``` ### 3. SSH执行 - 使用 `sshpass` 自动输入密码 - 通过 `scp` 上传脚本文件 - 通过 `ssh` 远程执行脚本 - 5分钟超时保护 ### 4. 结果收集 - 实时捕获标准输出和错误输出 - 判断成功/失败状态 - 保存完整日志供查看 ## 安全设计 1. **密码传输**: HTTPS加密 2. **日志脱敏**: 密码不记录到日志 3. **超时控制**: 防止长时间挂起 4. **错误隔离**: 单机失败不影响其他机器 5. **审计日志**: 所有操作记录可追溯