? 前言
公众号沉寂了很久,原因说复杂也简单——过去一年,一半时间在工作,一半时间在 Gap 中漂浮。
最近虽然回归职场,却陷入了一种新的倦怠:面对传统企业客户,流程繁冗、协作低效,有时甚至恨不得每天都要和人吵架;而公司内部,也并不怎么看得起我这个“不够油滑”的人。
就在这种低气压里,我终于又找回了些许乐趣。不是因为项目好玩,而是因为我重新开始写代码了——准确地说,是用 AIGC 写小工具。
这一次,我只用了五天时间,以及下班后的星巴克点滴时光,在 ChatGPT 的辅助下,写出了我的第一个 DevOps 工具:
? CraftWeave —— 一个面向“极限运维环境”的 Ansible-like 工具。
它不只是我用 AIGC 落地的第一个作品,更像是我在灰暗现实中亲手织出的一道光。在给多个传统客户提供服务的过程中,我遇到了这样一些 “奇葩但真实” 的环境:
❌ 没有 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 编写,极致轻量,跨平台部署 |
? 快速开始(控制端 CLI)
1️⃣ 编译项目
make -C CraftWeave init
make -C CraftWeave
2️⃣ 编写示例 Inventory 文件(example/inventory)
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
3️⃣ 执行远程命令(类似 Ansible)
./CraftWeave/craftweave ansible all -i example/inventory -m shell -a "id"
4️⃣ 输出聚合展示(推荐大规模环境)
./CraftWeave/craftweave ansible all -i example/inventory -m shell -a "id" --aggregate
5️⃣ 上传并执行本地脚本
./CraftWeave/craftweave ansible all -i example/inventory -m script -a example/uname.sh
6️⃣ 执行 YAML Playbook 任务编排
示例 example/playbook.yaml:
- name: 系统信息检查
hosts: all
tasks:
- name: 获取主机名
module: shell
args: hostname
- name: 查看内核版本
module: shell
args: uname -r
执行命令:
./CraftWeave/craftweave playbook -i example/inventory -f example/playbook.yaml
? 结束语
CraftWeave 是我用 AIGC 打造的第一个实战落地工具。整个开发过程非常简单,也非常真实:
利用给客户服务时的摸鱼间隙、午休刚醒的片刻、下班后在星巴克的零碎时间——没有熬夜加班,没有熬人力气堆代码,只用了五天。
借助 ChatGPT 的辅助,我只需要提出结构化的构思与功能目标,它帮我生成代码、设计 GitHub Actions、优化流程,而我只需负责 QA 与微调。
就这样,“C+V+思考” 的节奏,完整复刻出了 Ansible 的核心能力,并将其融合成一个真正适配极限环境的 CLI 工具。
✅ CraftWeave 已实现的核心能力:
?️ craftweave ansible:
类 Ansible 的命令行远程执行器,支持shell
和script
模块,覆盖绝大多数基础操作场景? craftweave playbook:
支持 YAML 编排格式,定义任务步骤、目标主机与模块参数,极简语法-
? 聚合输出功能(--aggregate):
原生支持将执行结果相同的主机聚合展示,避免重复输出,特别适合大规模主机对比与可视化展示
(这一能力在传统 Ansible 中需依赖pdsh
、ansbak
等外部工具)
⭐ 开源地址 & 参与方式
? GitHub 项目地址:https://github.com/svc-design/CraftWeave.git
借助 ? ChatGPT 之力,愿你我皆成 AIGC 时代的创造者与架构编织者。?
发表评论 取消回复