生成的 Windows 和 Linux 可部署包认证运行
请在 Generate deployables 完成后使用本节。本节记录生成的 win-x64 和原生 linux-x64 包的认证/运行流程。这些是 DSE 生成的集成运行器,不是 DSE 商业 Windows/Container 安装 SKU。
Windows 可部署包 (windows/win-x64)
将生成的 Windows 文件夹复制到认证机器(或解压传输的压缩包),然后从 windows\win-x64 目录操作。
首次运行前请确认以下生成文件存在:
DataSourceExplorer.Runner.exemanager.cmdrun.cmdschema-catalog.jsonsource-connections.jsondestination-route.json(启用路由时)
启动本地 Runtime Manager:
cd /d C:\Path\To\deployables\windows\win-x64 manager.cmd
manager.cmd 会启动 DataSourceExplorer.Runner.exe --manager。管理器只监听 127.0.0.1,通常会自动打开默认浏览器。如果浏览器未打开,请直接运行可执行文件并使用控制台中显示的 Local management URL。
- 确认 Runtime status 为 READY,且没有活动执行。
- 在 Connections 中确认所有必需源和目标均显示 Configured。若要保留保存/嵌入的值,请将受保护字段留空。
- 首次认证运行请使用 Manual only,并将输出目录设置为 output。
- 选择 Run now,等待状态返回 READY。
- 确认 Last result 和 Run history 显示 Success,然后独立验证预期输出文件/目标数据。
一次性无界面运行:
run.cmd
Linux 可部署包 (linux/linux-x64) — 已验证的 Ubuntu Hyper-V 流程
以下流程遵循提供用于认证的 Ubuntu Server 26.04.1 LTS / Microsoft Hyper-V 已验证指南。它运行原生 Linux 可部署包;此流程不需要 Docker。
从 Windows 浏览器访问的推荐安全方式
与其把管理器暴露到 VM 网络,不如在读取 Linux 日志中的管理器端口后,从 Windows PowerShell 建立本地 SSH 端口转发:
ssh -L 18093:127.0.0.1:<manager-port> <linux-user>@<VM-IP>
然后在 Windows 打开 http://127.0.0.1:18093/。使用管理器期间请保持 SSH 会话打开。下方的 socat 转发仍可用于隔离/可信的认证网络。
目的
本流程创建一个轻量级 Ubuntu Server 虚拟机,并运行由 DSE 生成的原生 Linux 可部署包。它对应 Windows 上的部署流程:复制生成的包、启动 DSE Deployable Runtime Manager、从 Windows 主机打开管理器、执行部署并验证结果。
先决条件
- 已启用 Hyper-V 的 Windows 主机
- Ubuntu Server LTS ISO
- DSE 生成的
linux文件夹,其中包含linux/linux-x64 - 至少 4 个 vCPU、4 GB RAM 和 40 GB 虚拟磁盘
- 虚拟机可以访问所需的 DSE 源和目标系统
1. 创建 Hyper-V 虚拟机
创建第 2 代虚拟机,并使用以下基准配置:
| 虚拟机名称 | DSE-Linux-Test |
| 代数 | Generation 2 |
| 内存 | 建议固定 4096 MB RAM |
| 处理器 | 4 个虚拟处理器 |
| 磁盘 | 40 GB 动态扩展 VHDX |
| 网络 | Hyper-V Default Switch |
| Secure Boot | 启用 - Microsoft UEFI Certificate Authority |
| 操作系统 | Ubuntu Server LTS(本流程使用 26.04.1 验证) |
2. 准备 Ubuntu
登录 Ubuntu 并更新系统,然后检查 CPU、内存、磁盘和 IP 地址。
sudo apt update sudo apt upgrade -y hostname -I nproc free -h df -h
如果 40 GB VHDX 已创建,但根逻辑卷只有约 18-19 GB,请扩展 LVM 根卷以使用剩余空间。
sudo vgs sudo lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv df -h
3. 从 Windows 使用 SSH 连接
使用 hostname -I 显示的当前虚拟机 IP。Hyper-V Default Switch 的地址可能在重启后改变。
ssh <linux-user>@<VM-IP>
4. 复制生成的 Linux 文件夹
请从 Windows PowerShell 运行 ssh/scp,而不是从 Ubuntu shell 运行。DSE 生成的是 linux 文件夹,而不是 linux.zip 文件。将示例路径、用户和 IP 替换为实际值。
ssh <linux-user>@<VM-IP> "rm -rf /home/<linux-user>/dse-deploy/linux && mkdir -p /home/<linux-user>/dse-deploy" scp -r "C:\Path\To\GeneratedDeployables\...\linux" <linux-user>@<VM-IP>:/home/<linux-user>/dse-deploy/
5. 准备部署包
如需使用 relay,请安装 socat,然后进入已复制的 linux-x64 目录并添加 Linux 执行权限。当前 DSE shell 脚本为无 BOM 的 UTF-8,因此不需要解压或移除 BOM。
sudo apt update && sudo apt install -y socat cd ~/dse-deploy/linux/linux-x64 chmod +x DataSourceExplorer.Runner manager.sh run.sh ls -l DataSourceExplorer.Runner manager.sh run.sh
6. 验证源/目标连接
启动 DSE 前,确认 Ubuntu VM 可以访问所需的主机和端口。下面示例使用 MongoDB 27017 端口。
timeout 5 bash -c '</dev/tcp/<source-host>/<source-port>' \ && echo 'Port reachable' \ || echo 'Port NOT reachable' # MongoDB example timeout 5 bash -c '</dev/tcp/192.168.50.124/27017' \ && echo 'MongoDB port reachable' \ || echo 'MongoDB port NOT reachable'
7. 启动 DSE Deployable Runtime Manager
启动管理器并查看控制台日志。管理器绑定到 127.0.0.1,并选择一个本地端口。
cd ~/dse-deploy/linux/linux-x64 ./manager.sh sleep 2 cat .dse-manager/manager-console.log curl http://127.0.0.1:<manager-port>/ | head
8. 让 Windows 浏览器访问管理器
在 Ubuntu 中使用 socat,将固定的虚拟机端口 18093 转发到管理器当前的 loopback 端口。下面命令会自动检测虚拟机 IP 和管理器端口。
cd ~/dse-deploy/linux/linux-x64
VM_IP=$(hostname -I | awk '{print $1}')
MANAGER_PORT=$(grep -oE '127\.0\.0\.1:[0-9]+' .dse-manager/manager-console.log | tail -1 | cut -d: -f2)
nohup socat TCP-LISTEN:18093,bind="$VM_IP",reuseaddr,fork TCP:127.0.0.1:"$MANAGER_PORT" > ~/dse-relay.log 2>&1 &
echo "Open: http://$VM_IP:18093/"
ss -ltnp | grep 180939. 从界面运行部署包
- 在 Edge 或 Chrome 中打开转发命令显示的 URL。
- 确认 Runtime status 显示 READY,且没有活动执行。
- 在 Connections 中确认源和目标显示 Configured。如果要保留嵌入的受保护连接值,请保持相关字段为空。
- 首次测试时,将 Scheduler configuration 设置为 Manual only,将 Output directory 设置为 output,然后保存。
- 选择 Run now,并等待状态返回 READY。
- 确认 Last result 和 Run history 显示 Success,然后验证输出文件和目标数据。
10. 停止、重启与清理
虚拟机重启后,IP 和管理器端口可能变化。再次运行 manager.sh,读取新端口并重新启动 socat。停止转发:
pkill -f 'socat TCP-LISTEN:18093' || true
验证清单
- Ubuntu 从 VHDX 启动且 SSH 登录正常
- 根文件系统有足够可用空间
- 从 Ubuntu 可以访问源/目标端口
- DataSourceExplorer.Runner、manager.sh 和 run.sh 具有执行权限
- manager-console.log 显示本地管理 URL
- Windows 浏览器可以打开 http://<VM-IP>:18093/
- 执行 Run now 后 Runtime status 返回 READY
- Run history 显示 Success,且预期输出/目标数据存在
故障排除
| Issue / Symptom | Action |
|---|---|
scp 显示 Could not resolve hostname c: | 从 Windows PowerShell 运行 scp,不要从 Ubuntu 运行。 |
Permission denied 或脚本无法启动 | 运行 chmod +x DataSourceExplorer.Runner manager.sh run.sh。 |
curl -I 返回 405 Method Not Allowed | 如果管理器只允许 GET 而不允许 HEAD,这是正常的。使用 curl http://127.0.0.1:<port>/ 测试。 |
浏览器无法打开 127.0.0.1 管理器 URL | 使用 socat 转发,然后在 Windows 中打开 http://<VM-IP>:18093/。 |
重启后页面失效 | 重新运行 manager.sh 并重新创建转发,因为 IP 和端口可能改变。 |
源连接测试失败 | 检查路由/防火墙,并从 Ubuntu 测试目标主机和端口。 |