# 自动部署功能说明 ## 概述 `auto_execute_tasks.py` 脚本现已支持自动将完成的任务脚本和 n8n 工作流部署到生产服务器。 ## 快速开始 ### 1️⃣ 安装依赖 ```bash pip install paramiko ``` 或使用安装脚本: ```bash python scripts/install_deploy_deps.py ``` ### 2️⃣ 测试连接 ```bash python scripts/auto_execute_tasks.py --test-connection ``` ### 3️⃣ 运行测试套件 ```bash python scripts/test_deploy.py ``` ### 4️⃣ 启动自动部署 ```bash python scripts/auto_execute_tasks.py --chat-loop --use-agent ``` ## 生产服务器信息 - **地址**: 192.168.3.143 - **端口**: 22 - **用户**: ubuntu - **密码**: citumxl2357 - **脚本路径**: `/opt/dataops-platform/datafactory/scripts` - **工作流路径**: `/opt/dataops-platform/n8n/workflows` ## 功能特性 ### ✅ 自动部署(默认启用) - 任务完成后自动上传 Python 脚本 - 自动查找并上传相关的 n8n 工作流文件 - 自动设置文件执行权限 ### 🔍 智能工作流查找 系统会自动查找: 1. 与脚本同目录的 `n8n_workflow_*.json` 文件 2. `datafactory/n8n_workflows/` 目录下的工作流 3. 根据任务名称匹配的工作流文件 ### 🛠️ 灵活控制 - 可以禁用自动部署:`--no-deploy` - 可以手动部署指定任务:`--deploy-now TASK_ID` - 可以测试连接:`--test-connection` ## 常用命令 | 命令 | 说明 | |------|------| | `--test-connection` | 测试 SSH 连接 | | `--deploy-now 123` | 部署任务 ID 为 123 的脚本 | | `--no-deploy` | 禁用自动部署 | | `--chat-loop --use-agent` | Agent 循环模式(自动部署) | | `--agent-run` | 单次 Agent 运行(自动部署) | | `--once` | 单次任务检查(自动部署) | ## 使用示例 ### 基本使用 ```bash # 启动 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 ``` ### 禁用自动部署 ```bash python scripts/auto_execute_tasks.py --chat-loop --use-agent --no-deploy ``` ### 手动部署 ```bash # 部署任务 ID 为 123 的脚本 python scripts/auto_execute_tasks.py --deploy-now 123 ``` ### 测试和调试 ```bash # 测试 SSH 连接 python scripts/auto_execute_tasks.py --test-connection # 运行完整测试套件 python scripts/test_deploy.py ``` ## 部署流程 ``` 任务完成 → 同步数据库 → SSH 连接 → 上传脚本 → 上传工作流 → 设置权限 → 完成 ``` ## 部署日志示例 ``` ============================================================ 🚀 开始自动部署任务: 销售数据生成脚本 ============================================================ 📦 部署 Python 脚本: datafactory/scripts/sales_data_generator.py 正在连接生产服务器 ubuntu@192.168.3.143:22... ✅ SSH 连接成功 正在上传: sales_data_generator.py -> /opt/dataops-platform/datafactory/scripts/ ✅ 脚本部署成功 📦 发现 1 个工作流文件 📦 部署工作流: n8n_workflow_sales_data.json ✅ 工作流部署成功 ============================================================ ✅ 任务 销售数据生成脚本 部署完成 ============================================================ ``` ## 故障排查 | 问题 | 解决方案 | |------|---------| | SSH 连接失败 | 检查网络、防火墙、SSH 服务 | | 认证失败 | 验证用户名密码 | | 权限不足 | 检查目录权限 | | paramiko 未安装 | `pip install paramiko` | | 文件未找到 | 检查 code_path 和 code_name | ## 文档索引 - 📖 [详细使用指南](./docs/auto_deploy_guide.md) - 完整的功能说明和故障排查 - 📋 [快速参考](./docs/auto_deploy_quick_reference.md) - 常用命令速查 - 📝 [更新日志](./docs/CHANGELOG_auto_deploy.md) - 功能变更记录 ## 脚本文件 - `scripts/auto_execute_tasks.py` - 主脚本(已更新) - `scripts/install_deploy_deps.py` - 依赖安装脚本 - `scripts/test_deploy.py` - 测试脚本 ## 安全建议 ⚠️ **重要提示**: 1. 当前密码以明文形式存储在代码中 2. 建议后续改用 SSH 密钥认证 3. 确保生产服务器仅在内网访问 4. 定期审计部署日志 ## 技术支持 如遇问题: 1. 运行测试脚本:`python scripts/test_deploy.py` 2. 检查日志输出 3. 查看详细文档:[auto_deploy_guide.md](./docs/auto_deploy_guide.md) ## 未来改进 - [ ] SSH 密钥认证 - [ ] 多服务器部署 - [ ] 部署版本管理 - [ ] 自动回滚机制 - [ ] 部署通知功能 ## 许可证 与主项目保持一致 --- **最后更新**: 2026-01-07