auto_execute_tasks.py 脚本现已支持自动将完成的任务脚本和 n8n 工作流部署到生产服务器。
/opt/dataops-platform/datafactory/scripts/opt/dataops-platform/n8n/workflows自动部署功能需要 paramiko 库来实现 SSH 连接和文件传输:
pip install paramiko
当任务完成并同步到数据库时,系统会自动:
系统会按以下顺序查找相关的 n8n 工作流文件:
n8n_workflow_*.json 文件datafactory/n8n_workflows/ 目录下的所有 .json 文件在首次使用前,建议先测试到生产服务器的连接:
python scripts/auto_execute_tasks.py --test-connection
成功输出示例:
============================================================
🔍 测试生产服务器连接
============================================================
正在连接生产服务器 ubuntu@192.168.3.143:22...
✅ SSH 连接成功
✅ 命令执行成功: Connection test successful
✅ 脚本目录存在: /opt/dataops-platform/datafactory/scripts
============================================================
✅ 连接测试完成
============================================================
正常运行脚本时,自动部署功能默认启用:
# Agent 循环模式(推荐)
python scripts/auto_execute_tasks.py --chat-loop --use-agent
# 单次执行
python scripts/auto_execute_tasks.py --once
# Agent 运行模式
python scripts/auto_execute_tasks.py --agent-run
如果需要临时禁用自动部署功能:
python scripts/auto_execute_tasks.py --chat-loop --use-agent --no-deploy
可以手动部署已完成的特定任务:
# 部署任务 ID 为 123 的脚本和工作流
python scripts/auto_execute_tasks.py --deploy-now 123
任务完成检测
tasks/pending_tasks.json 中有状态为 completed 的任务数据库同步
completedscript_path 字段自动部署触发
code_name 和 code_path 信息脚本部署
工作流部署
部署日志
============================================================
🚀 开始自动部署任务: 销售数据生成脚本
============================================================
📦 部署 Python 脚本: datafactory/scripts/sales_data_generator.py
正在连接生产服务器 ubuntu@192.168.3.143:22...
✅ SSH 连接成功
正在上传: G:\code-lab\DataOps-platform-new\datafactory\scripts\sales_data_generator.py -> /opt/dataops-platform/datafactory/scripts/sales_data_generator.py
✅ 脚本部署成功: /opt/dataops-platform/datafactory/scripts/sales_data_generator.py
📦 发现 1 个工作流文件
📦 部署工作流: n8n_workflow_sales_data.json
正在连接生产服务器 ubuntu@192.168.3.143:22...
✅ SSH 连接成功
正在上传工作流: G:\code-lab\DataOps-platform-new\datafactory\n8n_workflows\n8n_workflow_sales_data.json -> /opt/dataops-platform/n8n/workflows/n8n_workflow_sales_data.json
✅ 工作流部署成功: /opt/dataops-platform/n8n/workflows/n8n_workflow_sales_data.json
============================================================
✅ 任务 销售数据生成脚本 部署完成
============================================================
问题: SSH 连接失败: [Errno 10060] A connection attempt failed...
解决方案:
问题: SSH 连接失败: Authentication failed
解决方案:
/etc/ssh/sshd_config)问题: Permission denied 错误
解决方案:
如需要,在服务器上执行:
sudo chown -R ubuntu:ubuntu /opt/dataops-platform/datafactory/scripts
sudo chmod -R 755 /opt/dataops-platform/datafactory/scripts
问题: 未安装 paramiko 库
解决方案:
pip install paramiko
问题: 本地脚本文件不存在
解决方案:
tasks/pending_tasks.json 中的 code_path 和 code_name 是否正确密码管理
网络安全
权限控制
如需修改生产服务器配置,编辑 scripts/auto_execute_tasks.py 中的 PRODUCTION_SERVER 字典:
PRODUCTION_SERVER = {
"host": "192.168.3.143",
"port": 22,
"username": "ubuntu",
"password": "citumxl2357",
"script_path": "/opt/dataops-platform/datafactory/scripts",
"workflow_path": "/opt/dataops-platform/n8n/workflows",
}
A: 部署日志会输出到控制台,建议使用日志重定向保存:
python scripts/auto_execute_tasks.py --chat-loop --use-agent 2>&1 | tee deploy.log
A: 当前版本仅支持单个生产服务器。如需多服务器部署,需要修改代码实现。
A: 不会。任务状态更新和部署是独立的流程。即使部署失败,任务仍会标记为 completed。
A: 当前版本不支持自动回滚。需要手动在生产服务器上恢复旧版本文件。