首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >🧶 CraftWeave Control:用 AIGC 打造的第一个 DevOps 控制引擎

🧶 CraftWeave Control:用 AIGC 打造的第一个 DevOps 控制引擎

原创
作者头像
行者深蓝
修改2025-05-25 13:03:01
修改2025-05-25 13:03:01
1870
举报

🐣 初心:为什么我要自研 CraftWeave?

在给多个传统客户提供服务的过程中,我遇到了这样一些 “奇葩但真实” 的环境:

  • ❌ 没有 apt/yum,没有 Python/pip,镜像仓库不可访问
  • ❌ CI/CD 无法部署,ansible 依赖过重,venv/pip 崩溃
  • ❌ 所有操作靠 scp + rpm -ivh 手工执行

一度想强行用 Ansible,但连 Python 环境都被锁死,根本跑不起来。

于是我萌生了一个想法:

“不如自己写一个类 Ansible 工具,真正做到可执行、轻依赖、可扩展,还能在这些环境下跑起来。”

这,就是 CraftWeave 的诞生背景。


🔧 项目简介

CraftWeave 是一个融合任务编排、架构建模和轻量执行能力的 DevOps 工具集,灵感源于 Ansible,但更灵活、模块化,并具备独立运行的 Rust 轻量 Agent,适用于极限环境下的配置管理与远程运维。


🧩 核心能力

✅ 控制端(Go 实现)

功能

描述

craftweave ansible

类 Ansible 命令行执行器

craftweave playbook

支持 YAML 多步骤任务编排

craftweave vault

加解密配置 (TODO)

craftweave cmdb

拓扑导出为图模型 (TODO)

craftweave plugin

运行插件模块,预留 WASM 扩展 (TODO)


✅ Agent 端(Rust 实现)

功能

描述

cw-agent run

单次拉取远程配置并执行

cw-agent daemon

后台常驻运行,定期调度

cw-agent apply --file

支持本地 JSON 配置的离线执行

状态持久化

执行结果保存到本地 JSON/嵌入式 DB

免 Python / Shell

纯 Rust 编写,极致轻量,跨平台部署


🚀 快速开始

🧰 安装控制端

代码语言:javascript
复制
git clone https://github.com/svc-design/CraftWeave.git
cd CraftWeave
make -C CraftWeave
make -C CraftWeaveAgent

📁 示例 Inventory 文件(INI)

代码语言:javascript
复制
[all]
demo        ansible_host=192.168.124.77 ansible_ssh_user=shenlan
cn-hub      ansible_host=1.15.155.245   ansible_ssh_user=ubuntu
global-hub  ansible_host=2.15.135.215   ansible_ssh_user=centos

[all:vars]
ansible_port=22
ansible_ssh_private_key_file=~/.ssh/id_rsa

🛠️ 远程命令执行(Ansible 风格)

代码语言:javascript
复制
craftweave ansible all -i example/inventory -m shell -a 'id'

🔎 聚合输出(推荐大规模场景)

代码语言:javascript
复制
craftweave ansible all -i example/inventory -m shell -a 'id' --aggregate

📜 YAML Playbook 执行

代码语言:javascript
复制
example/playbook.yaml
- name: 系统检查
  hosts: all
  tasks:
    - name: 查看内核
      module: shell
      args: uname -r
代码语言:javascript
复制
craftweave playbook -i example/inventory -f example/playbook.yaml

📦 上传并执行脚本

代码语言:javascript
复制
craftweave ansible all -i example/inventory -m script -a example/uname.sh

🛰️ 使用 CraftWeave Agent(Rust 实现)

代码语言:javascript
复制
cd CraftWeaveAgent
cargo build --release
cp target/release/cw-agent /usr/local/bin/

常见命令

代码语言:javascript
复制
cw-agent run                            # 拉取并执行一次任务
cw-agent daemon                         # 常驻进程持续调度
cw-agent apply --file config.json       # 离线执行本地任务
cw-agent status                         # 查看最近执行记录

🧠 愿景:打造 DevOps 智能协作闭环

CraftWeave 并非只是 Ansible 替代者,而是立足于以下核心理念:

  • ✅ 无依赖也能跑 —— 控制端单文件,Agent 无 Python,真正“瘦身可用”
  • ✅ 拓扑与任务融合 —— 支持导出 CMDB 图模型,辅助架构可视化
  • ✅ 轻到极致 —— Rust Agent 可嵌入边缘设备、IoT 主机、离线节点
  • ✅ 接入 AIGC 时代 —— 插件架构将支持 GPT 驱动的智能命令生成与补全

⭐ 开源地址 & 参与方式

📌 GitHub 项目地址:

🧵 如果你也曾在 “不能 pip、不能 yum、不能联网” 的环境中痛苦挣扎,

或者想打造一个更轻更智能的运维工具,欢迎:

  • 👉 Star ⭐
  • 👉 Fork 🍴
  • 👉 PR 💻
  • 👉 Issue 💬

🎯 结语

CraftWeave 是我用 AIGC 打造的第一个实战落地工具,整个开发过程其实非常简单,也非常真实:

利用给客户服务时的摸鱼间隙、午休刚醒的片刻,下班后在星巴克的零碎时间——没有熬夜加班,也没有堆代码堆到深夜,只用了五天。

借助 ChatGPT 的辅助,我只需要提供结构性构思与功能目标,由它辅助生成代码、编写 GitHub Action、优化流程,然后我负责 QA 和微调。这样 “C+V+思考” 的节奏,就将 ansible 和 ansible-playbook 核心基础功能成功复刻出来。

不仅如此,CraftWeave 还原生支持了 聚合输出相同结果的主机 这个经典但常被忽视的功能——在传统 Ansible 中需要借助 pdsh 或 ansbak 等外部工具,而我将它直接融合到 CLI 命令中,让大规模展示变得更清爽直观。

有了 AI 助手,开发不再是障碍,真正的挑战是:你是否有清晰的构思与明确的目标。

借助 🤖 ChatGPT 之力,愿你我皆成 AIGC 时代的创造者与架构编织者。🚀

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🐣 初心:为什么我要自研 CraftWeave?
  • 🔧 项目简介
  • 🧩 核心能力
    • ✅ 控制端(Go 实现)
    • ✅ Agent 端(Rust 实现)
  • 🚀 快速开始
    • 🧰 安装控制端
    • 📁 示例 Inventory 文件(INI)
    • 🛠️ 远程命令执行(Ansible 风格)
    • 🔎 聚合输出(推荐大规模场景)
    • 📜 YAML Playbook 执行
    • 📦 上传并执行脚本
  • 🛰️ 使用 CraftWeave Agent(Rust 实现)
    • 常见命令
  • 🧠 愿景:打造 DevOps 智能协作闭环
  • ⭐ 开源地址 & 参与方式
  • 🎯 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档