# fastdp-ops **Repository Path**: zhao-pengfei2/fastdp-ops ## Basic Information - **Project Name**: fastdp-ops - **Description**: fastdp-ops 是一款C/S 架构(服务端 + 代理端) 的运维编排工具,核心设计参考了 ansible-playbook 的 “模块化 + 声明式” 理念,同时通过 gRPC 实现更高效的节点通信。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-27 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fastdp-ops 运维部署工具 ## 概述 fastdp-ops 是一款轻量级、Ansible 风格的运维部署工具,支持批量主机管理、模块扩展和流程编排。可用于部署二进制版 Kubernetes 集群等多种运维场景。 ## 功能特点 - 支持主机注册与管理(在线状态监控、信息查看、删除等) - 提供丰富运维模块(文件传输、命令执行、仓库管理、模板渲染等) - 支持 YAML 定义的任务流程编排,便于自动化部署(如 Kubernetes 集群) - 采用 C/S 架构,通过 gRPC 实现服务端与代理端通信 - 支持后台运行及调试模式 ## 快速开始 ### 1. 安装方式 预编译版本(推荐) 下载最新编译版本: ```bash curl -fSL https://gitee.com/zhao-pengfei2/fastdp-ops/releases/download/fastdp-ops-v1-linux-amd64/fastdp-ops-v1-amd64.tar.gz -o fastdp-ops.tar.gz ``` 解压并配置: ```bash # 解压文件 tar -zxf fastdp-ops.tar.gz cd fastdp-ops # 创建配置目录并移动配置文件 sudo mkdir -p /etc/fastdp-ops sudo mv config.toml /etc/fastdp-ops/ ``` 源码编译 克隆代码仓库: ```bash git clone https://gitee.com/zhao-pengfei2/fastdp-ops.git cd fastdp-ops ``` 编译二进制文件: ```bash # 编译服务端 go build -o fastdp-ops ./cmd/server # 编译代理端(可选,如需自定义agent) go build -o fastdp-agent ./cmd/agent/main ``` ### 2. 启动服务端 启动服务并指定绑定 IP(需使用本机已存在的 IPv4 地址): ```bash ./fastdp-ops run --ip=172.29.204.158 ``` 成功启动后,会输出类似以下信息: ``` 在需要纳管的agent节点执行: curl -fSL http://172.29.204.158:8080/static/fastdp-agent.sh | bash -x -s 172.29.204.158 8080 如果已安装fastdp工具,可使用:fastdp shell -a 'curl -fSL http://172.29.204.158:8080/static/fastdp-agent.sh | bash -x -s 172.29.204.158 8080' all 快速安装agent 服务已后台启动,PID: 28366,绑定IP: 172.29.204.158 ``` ### 3. 安装代理端(Agent) 在需要被管理的节点上执行服务端输出的安装命令: ```bash # 示例命令(请替换为实际输出的命令) curl -fSL http://172.29.204.158:8080/static/fastdp-agent.sh | bash -x -s 172.29.204.158 8080 ``` > 说明:Agent 会自动注册到服务端,支持自动获取与server端同网段的本机 IP 并配置连接信息。安装需要 root 权限(使用 sudo 执行)。 ## 核心命令使用 ### 主机管理(host) ```bash # 列出所有已注册主机 ./fastdp-ops host -l # 删除指定IP的主机 ./fastdp-ops host -d 192.168.1.100 ``` ### 执行编排任务(play) 通过 YAML 文件定义任务流程,例如部署 Kubernetes 集群(物料位于 materials/k8s/): ```bash # 执行任务流程 ./fastdp-ops play -f materials/k8s/playbook.yaml ``` ### 停止服务(exit) ```bash ./fastdp-ops exit ``` ### 模块说明 工具内置多种运维模块,部分核心模块如下: - shell:执行单条命令或多行脚本(支持管道等特性) - copy:本地文件/目录复制(支持 MD5 校验、权限设置、递归拷贝) - package:多系统包管理(安装、卸载、更新、本地安装及状态检查,适配 apt/yum/dnf) - repo:系统仓库管理(添加/删除仓库、备份/恢复配置、更新缓存、测试可用性) - modprobe:内核模块管理(加载、移除模块,支持批量操作) - file:文件基础操作(创建、删除、权限修改、目录管理等) - file_pull:从远程服务端拉取文件(支持校验、断点续传) - unarchive:解压压缩包(支持 tar/zip 等格式,带重复解压检查) - template:模板渲染(支持变量替换、覆盖/追加模式,MD5 比对避免重复写入) - systemd:系统服务管理(启动、停止、重启、启用/禁用服务) ### 目录结构说明 - materials/k8s/:Kubernetes 部署相关物料(脚本、配置模板等) - static/:Agent 安装脚本及相关资源 - proto/:gRPC 通信协议定义 - cmd/server/:服务端代码 - cmd/agent/:代理端代码 ### 注意事项 - 服务端启动时必须指定本机已存在的 IP 地址 - Agent 安装需要 root 权限(使用 sudo 执行) - Kubernetes 部署的 files 和 images 目录因内容较大未上传