节点在线、应用在线、配置在线使用令牌查询
|
# 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. **审计日志**: 所有操作记录可追溯
|