这个项目能做什么

Onigirazu 是一款用 Go 编写、受 Ansible 启发的配置管理与基础设施自动化工具。它通过 SSH 管理主机,无需安装代理,并使用 YAML playbook 描述期望状态。 README 中描述的核心能力: - YAML playbook,包含 play、task、handler、分层变量、条件判断(when、until、changed_when、failed_when)、循环,以及带过滤器和空白控制的类 Jinja2 模板。 - 无代理 SSH 执行,支持主机密钥验证、可配置并发度的并行任务执行、幂等操作,以及带退避的重试逻辑。 - 支持多种格式的 inventory(YAML、TOML、JSON、INI、文本),并可通过 -i 内联指定主机,以及类似 Ansible 的 group_vars/host_vars 变量分层。 - 状态管理,支持快照与回滚、漂移检测与自动修复、执行历史的审计与分析,以及针对 facts、模板和软件包的缓存系统。 - 无需 playbook 的 ad-hoc 命令执行,支持五种输入格式(包括自然语言形式),并支持文本、JSON、YAML 和表格输出。 - 提供 CLI,包含 apply、run、plan、validate、lint、fmt、graph、audit、diff、drift、healthcheck、inventory、state、rollback 和 completion 等命令。 - 交互式终端 UI 模式(--interactive),支持实时日志流、NORMAL/VERBOSE/DEBUG 显示切换、统计信息、键盘控制和优雅关闭。 - 模块系统,包含 44 个内置模块,覆盖文件、软件包、服务、用户与组、命令、模板、git、systemd、cron、防火墙、容器(Docker、Compose、Podman)和数据库(MySQL、PostgreSQL、MongoDB),并提供插件架构以及用于生成带测试和基准的新模块的脚手架工具。 - 通过 Bitwarden 集成进行密钥管理,并可选使用 JSON 安全策略来限制模块、主机、路径和命令。 安装方式包括适用于 Linux、macOS、Windows 和 BSD 变体的预构建二进制文件、Docker 镜像、发行版软件包(.deb、.rpm、.apk、Arch)、使用 make 从源码构建,以及 go install。README 还引用了关于配置、安全、测试、playbook 格式、ad-hoc 用法和交互模式的详尽文档。