# jumpserver_sync **Repository Path**: ccq/jumpserver_sync ## Basic Information - **Project Name**: jumpserver_sync - **Description**: 基于jumpserver堡垒机,动态获取指定tag的阿里云主机,注册进资产 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-21 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jumpserver_sync 基于jumpserver堡垒机,动态获取指定tag的阿里云主机,注册进资产 ## 核心思路 ``` flowchart LR A[定时启动] --> B subgraph B [步骤1: 查询阿里云] B1[调用阿里云API] --> B2[筛选特定标签
Project=WaterNetworkAI] B2 --> B3[提取DSW实例ID与IP] end B --> C{资产存在?} C -- 是 --> D[步骤2: 更新资产
调用JumpServer更新API] C -- 否 --> E[步骤3: 创建资产
调用JumpServer创建API] D --> F[同步完成] E --> F ``` ## 文件结构 ``` /opt/jumpserver_sync/ ├── jumpserver_api_demo.py # API认证基础模块 ├── ecs_tag_query_v1.py # 阿里云ECS查询器 ├── dsw_hybrid_query.py # 混合查询器 (已适配DSW API) ├── asset_sync.py # 资产同步器 ├── unified_sync_manager.py # 主执行脚本 ├── .env # 配置文件 (务必保密!) ├── logs/ # 日志目录 (自动创建) └── requirements.txt # 依赖清单 ``` ### 配置文件 (.env) ** 请务必替换为自己实际的信息 ** ```ini # ----- 阿里云配置 ----- # 用于查询实例的RAM子账号密钥 ALI_ACCESS_KEY_ID = ALI_ACCESS_KEY_SECRET = # 我的工作区是杭州,请按自己的工作区填写 ALI_REGION_ID = cn-hangzhou # 从DSW实例信息中获得PAI的工作空间id ALI_WORKSPACE_ID=530124 # 用于筛选实例的标签 INSTANCE_TAG_KEY = Project INSTANCE_TAG_VALUE = WaterNetworkAI # ----- JumpServer配置 ----- # 与 jumpserver_api_demo.py 配置一致 JMS_URL = http://192.168.1.109 # 在JumpServer个人信息的`API Key`创建 JMS_ACCESS_KEY_ID = JMS_ACCESS_KEY_SECRET = # 资产默认属性 (根据实际情况修改) # 节点ID可在JumpServer"资产管理-资产节点"中,点击节点右侧的“.../查看”获取 JMS_DEFAULT_NODE_ID = ``` ## 使用 ```bash # 在堡垒机上安装所有Python依赖 cd /opt/jumpserver_sync pip3 install -r requirements.txt # 1. 手动执行一次,观察完整输出 cd /opt/jumpserver_sync python3 unified_sync_manager.py # 2. 查看详细日志 tail -f logs/sync_service.log ``` ### 定时任务 ```bash # 编辑当前用户的crontab crontab -e # 添加以下行(注意使用完整路径) */5 * * * * cd /opt/jumpserver_sync && /usr/bin/python3 /opt/jumpserver_sync/unified_sync_manager.py >> /opt/jumpserver_sync/logs/cron.log 2>&1 # 保存后验证crontab配置 crontab -l ```