CINC Client 19.4.46 介绍与选型指南
CINC(Cinc Is Not Chef)介绍与选型:Chef 开源组件的社区自由发行版,Client/Workstation/Server/Auditor 四产品线定位、Apache-2.0 无 EULA 许可优势、与 Chef 商业版/Ansible/Puppet/SaltStack 量化对比,官方源 2026-10-27 实查
CINC 19 介绍与选型指南
目标:帮助运维与平台工程师快速认识 CINC——Chef 开源组件的社区自由发行版,弄清它与 Chef 商业分发的许可差异、四大产品线的分工,并与 Chef 商业版、Ansible、Puppet、SaltStack 做出有依据的选型决策。文中版本号、许可与社区数据均实查自 cinc.sh 官网、omnitruck.cinc.sh 安装服务、GitLab cinc-project 与上游 github.com/chef/chef 仓库(查询日期:2026-10-27)。
一、环境信息
- 产品线与最新稳定版(omnitruck.cinc.sh stable 通道实查,2026-10-27):Cinc Client 19.4.46、Cinc Workstation 26.3.0、Cinc Server 15.10.127、Cinc Auditor 7.3.4
- 技术栈:Ruby(Cinc Workstation 26.3.0 内嵌 Ruby 3.4.11)
- 支持平台:Linux(本文实测 Ubuntu 22.04 x86_64)、macOS、Windows
- 开源许可:Apache-2.0,无最终用户许可协议(EULA)
- 主仓库:GitLab
cinc-project(如 distribution/client 仓:27 stars / 18 forks,最后活动 2026-10-22);GitHub 同名组织仅作镜像 - 社区渠道:Chef Community Slack 的
#community-distros频道 - 托管方:美国俄勒冈州立大学开源实验室(OSUOSL)
二、软件概述
CINC 是递归缩写 "Cinc Is Not Chef"。2019 年 Chef 公司(现属 Progress)调整分发策略:官方构建的安装包要求接受 Chef EULA、且受 Chef 商标约束;与此同时上游源码仍是 Apache-2.0。CINC 项目由此诞生——从上游开源代码构建出一套「去商标、无 EULA」的社区自由发行版,功能与上游保持一致,并与 Progress 保持协调、遵守 Chef 商标政策(这也是整套产品改名 Cinc 的原因)。
一句话概括:CINC = 上游 Chef 开源组件(Infra Client / Workstation / Infra Server / InSpec)的 Apache-2.0 自由再发行,每条产品线一一对应:
| CINC 产品 | 对应上游组件 | 角色 | 最新稳定版(2026-10-27 实查) |
|---|---|---|---|
| Cinc Client | Chef Infra Client | 节点代理,执行配置收敛 | 19.4.46 |
| Cinc Workstation | Chef Workstation | 开发/管理工作站工具集 | 26.3.0 |
| Cinc Server | Chef Infra Server | 策略与节点管理服务端 | 15.10.127 |
| Cinc Auditor | Chef InSpec | 合规审计框架 | 7.3.4 |
CINC 官方公布的「最后一个无 EULA 的上游版本」基线(即 CINC 接续构建的起点)为:Client(Linux)15.6.10、Workstation 22.1.745、Auditor(InSpec)4.17.7、Server 14.14.1;基线之后的版本均由 CINC 从源码继续构建。因此在上游 Chef Infra Client 发布 v19.4.46(2026-10-14,github.com/chef/chef Releases)后,Cinc Client 19.4.46 随之跟进——本文标题中的「19」即指 Cinc Client 的 19.x 主线。
⚠️ 注意:CINC 与 Chef 的关系是「同一开源代码的两种分发」,不是功能分叉的竞品。选 CINC 的核心动因是许可与商标自由,而不是功能差异。
三、核心架构
CINC 的运行模型与上游 Chef 完全一致,由四个产品线组合出三种典型形态:
3.1 Cinc Client:节点代理
安装在被管节点上,核心是 cinc-client 命令:每次运行先由 Ohai 采集节点事实(操作系统、CPU、内存、网络等),再按 Run List 加载 Cookbook/Recipe,把系统收敛到声明状态。配置根目录为 /etc/cinc(与上游的 /etc/chef 隔离,二者可并存于同一台机器)。
3.2 Cinc Workstation:开发与管理工作站工具集
面向工程师日常编写、测试、下发 Cookbook 的工作站包。26.3.0 实装清点包含:knife 19.3.3(服务端管理 CLI)、cinc-cli 6.1.40(生成 Cookbook 等脚手架)、Cinc Auditor 7.0.107、Test Kitchen 4.1.4(多平台测试)、Biome 2.0.107(Habitat 打包工具的自由发行)、Cookstyle(代码检查)、Berkshelf(依赖管理)、Fauxhai(Ohai 数据模拟)、cinc-zero(零服务端),内嵌 Ruby 3.4.11,不依赖系统 Ruby。
3.3 Cinc Server:策略与节点管理服务端
集中保存 Cookbook、节点状态与搜索索引,对应 Chef Infra Server。需要如实提示的选型风险:上游 Chef Infra Server 官方宣布 2026 年底停止维护(EOL),Cinc Server 正从「再发行」转为独立 fork 维护(CINC 官网公告,2026-10-27 实查)。新建平台建议优先评估 cinc-zero 本地模式或观望 fork 进展。
3.4 Cinc Auditor:合规审计框架
对应 Chef InSpec,用代码描述安全基线(如「SSH 应禁用 root 登录」)并对节点执行扫描。上游 InSpec 的商用分发同样受 EULA 约束,Cinc Auditor 是其自由替代。
3.5 三种运行形态
- 本地单机:
cinc-apply直接执行单个 Recipe、cinc-solo执行本地 Cookbook 集,零服务端依赖,适合单机固化与入门; - 零服务端:
cinc-zero在内存里起一个临时的 Chef Server 兼容端点,配合 knife 获得「准服务端」体验,适合小团队与过渡场景; - Client/Server:Cinc Server(或兼容服务端)+ 各节点 cinc-client 周期收敛 + 工作站 knife 管理,适合需要持续收敛与节点清单的规模环境。
💡 技术拓展:配置管理工具在「代理形态」上分为两大流派——
形态 代表 特点 取舍 Agentless(无代理) Ansible、DebOps 被管端零安装,SSH+Python 推送 中小规模、合规要求少装软件的环境 Agent(有代理) Puppet、Chef/CINC、Salt 被管端常驻代理,周期性拉取收敛 大规模、需要持续收敛与状态上报的环境 CINC 主体属 Agent 流派(cinc-client 常驻或定时触发),同时保留 cinc-solo/cinc-zero 两种无服务端形态,比纯 agent 方案多一条轻量路径。
四、功能特性
- 功能等价的自由再发行:与上游同版本功能一致,Apache-2.0 全链路,无 EULA、无许可密钥、无商标顾虑,可自由再分发。
- 上游命令兼容层:deb 包安装时自动把
chef-apply/chef-client/chef-shell/chef-solo/inspec软链到cinc-wrapper做兼容(执行时先打印 "Redirecting to cinc-client"),存量脚本与运维习惯平滑过渡。实测安装回显:
Setting up cinc (19.4.46-1) ...
Symlinking chef-apply command to cinc-wrapper for compatibility...
Symlinking chef-client command to cinc-wrapper for compatibility...
Symlinking chef-shell command to cinc-wrapper for compatibility...
Symlinking chef-solo command to cinc-wrapper for compatibility...
Symlinking inspec command to cinc-wrapper for compatibility...
Thank you for installing Cinc Client, the community build based on Chef Infra Client!
- 幂等资源模型:
package、service、user、file、template等上百种内置资源声明「期望状态」,重复执行结果一致(本专栏安装篇有首跑 4/5 更新、复跑 0/5 的幂等实测)。 - Ohai 事实采集:每次收敛前采集节点事实,Recipe 可按
node['platform']等属性做条件分支。 - 合规即代码:Cinc Auditor 把安全基线写成可版本化的代码并随收敛执行,且不受上游 InSpec 商用许可限制。
- 完整测试工具链:Test Kitchen(多平台临时机测试)、Cookstyle(Ruby lint)、Fauxhai(模拟 Ohai 数据)覆盖 Cookbook 开发全周期。
- 与上游并存:配置根目录
/etc/cinc、命令前缀cinc-与上游完全隔离,便于灰度迁移与双跑验证。
五、快速开始(最小可用示例)
下面用「在线安装 Cinc Client + cinc-solo 跑一个本地 Recipe」给出最小可用闭环,命令均在 Ubuntu 22.04 x86_64 实测通过(2026-10-27):
# 1. 在线安装 Cinc Client 19(omnitruck 官方安装脚本)
curl -L https://omnitruck.cinc.sh/install.sh | sudo bash -s -- -v 19
# 2. 验证安装
cinc-client --version
# Cinc Client, version 19.4.46
# 3. 写一个最小 Recipe
mkdir -p ~/cookbooks/hello/recipes
cat > ~/cookbooks/hello/recipes/default.rb <<'EOF'
file '/tmp/hello-cinc' do
content 'hello from cinc'
end
EOF
# 4. 用 cinc-solo 在本地收敛(无需服务端)
sudo cinc-solo -o 'recipe[hello]'
第 4 步的实际收敛回显(节选):
Cinc Client, version 19.4.46
Infra Phase starting
Converging 1 resources
Recipe: hello::default
* file[/tmp/hello-cinc] action create
- create new file /tmp/hello-cinc
- update content in file /tmp/hello-cinc from none to ...
Cinc Client Run complete
Infra Phase complete, 1/1 resources updated
完整的在线/离线安装方案、sha256 校验、systemd timer 定时收敛与排障实录见本专栏安装篇;cinc-solo/cinc-apply/ohai/knife 等命令族的逐条实测见本专栏命令篇。
六、适用场景与限制
适用场景:
- 想用 Chef 生态(Cookbook/Recipe 资源模型、InSpec 合规)但不接受 EULA 与商标限制的团队;
- 存量 Chef 开源用户的迁移落点:命令兼容层 + 配置目录隔离,迁移成本低;
- 合规审计需求:Cinc Auditor 免费替代受商用许可约束的 InSpec 分发;
- 需要「本地模式优先、服务端可选」渐进路线的中小团队(cinc-solo/cinc-zero 起步,规模上来再接 Cinc Server)。
限制与边界(官方明示或实查确认):
- 社区体量小:主仓 GitLab distribution/client 仅 27 stars / 18 forks(2026-10-27 实查),与 Ansible(71k)等不在一个量级,遇到问题主要靠 Chef Community Slack 的
#community-distros频道; - 无官方 apt/yum 仓库:只提供 omnitruck 安装脚本与裸 deb/rpm 包下载,仓库托管方案官方仍在征集设计中(cinc.sh 公告,2026-10-27 实查);
- 版本跟随上游有构建延迟:CINC 在上游发版后重新构建发布,hotfix 时效依赖社区构建管线;
- Cinc Server 前景需观望:上游 Chef Infra Server 2026 年底 EOL,Cinc Server 转为独立 fork 后的维护投入存在不确定性;
- 无商业支持:没有厂商 SLA,企业采购商业支持需回到 Progress Chef 360 等商业产品。
七、同类选型对比
量化数据实查日期:CINC/Chef 为 2026-10-27(GitLab/GitHub 与 omnitruck),Ansible/Salt/Puppet 星数为 2026-10 内经 shields.io 取自各主仓。
| 方案 | 许可/分发 | 星数 | 代理形态 | 语言/生态 | 版本节奏 |
|---|---|---|---|---|---|
| CINC 19 | Apache-2.0,无 EULA/商标约束 | 27(GitLab client 仓;上游 chef/chef 8.3k) | agent(另支持 solo/zero 本地模式) | Ruby DSL | 跟随上游(19.4.46 ↔ Chef Infra Client 19.4.46,2026-10-14) |
| Chef 商业分发(Progress) | 源码 Apache-2.0,但官方包需接受 EULA、可能要许可密钥 | 8.3k(github.com/chef/chef) | agent | Ruby DSL | 上游主线,2026 年持续月更 |
| Ansible | GPL-3.0 | 71k | agentless(SSH+Python) | Python/YAML | 月度级发布 |
| Puppet | Apache-2.0(开源版) | 8k | agent 常驻 | Ruby/Puppet DSL | 稳定演进 |
| SaltStack | Apache-2.0 | 16k | master/minion(亦支持 SSH) | Python/YAML | 年度大版本+补丁 |
关键差异解读:
- CINC vs Chef 商业分发:同一代码两种许可口径。要自由分发/嵌入产品/规避 EULA 合规流程选 CINC;要厂商支持、Chef 360 平台 UI 与 SLA 选 Progress 商业版。
- CINC vs Ansible:Ansible 胜在体量与被管端零安装;CINC(Chef 模型)胜在持续收敛(agent 周期性拉回期望状态)与「配置即 Ruby 代码」的表达力,适合有 Ruby 能力或存量 Chef 资产的团队。
- CINC vs Puppet/SaltStack:同属 agent 流派。Salt 的事件驱动与秒级响应更适合超大规模;Puppet 偏传统存量;CINC 的差异点仍是「Chef 生态 + 无 EULA」这一独特组合。
「如果…则…」选型建议:
- 已用/想用 Chef 生态,但要绕开 EULA 与商标约束 → 选 CINC;
- 全平台通用自动化、团队熟悉 Python/YAML、无存量 Chef 资产 → Ansible;
- 需要 Web UI、审计、多人协作调度 → Ansible + AWX,或评估 Progress Chef 360 商业版;
- 数千台以上规模、要求事件驱动秒级响应 → SaltStack。
八、参考链接
- CINC 官网:https://cinc.sh
- 下载站(裸 deb/rpm 包):https://downloads.cinc.sh 、https://packages.cinc.sh
- omnitruck 安装服务:https://omnitruck.cinc.sh/install.sh
- 主仓库(GitLab):https://gitlab.com/cinc-project
- GitHub 镜像组织:https://github.com/cinc-project
- 上游 Chef 源码仓库:https://github.com/chef/chef
- 社区频道:Chef Community Slack
#community-distros(http://community-slack.chef.io/) - 本站相关文档:《Chef Infra Client 19.4.46 介绍与选型指南》