Cdist

Cdist: Configuration Management That Stays Close to Unix Roots Cdist isn’t about flashy dashboards or enterprise plugins. It’s a minimalist configuration management system designed for people who already speak shell and want full control — without the overhead of agents, databases, or DSLs. It uses plain shell scripts and SSH. That’s it. Every configuration step — from setting a hostname to deploying a package — is done through type-based modules written in POSIX shell. No interpreters. No agent

OS: Windows / Linux / macOS
Size: 1.13 MB
Version: 4.11.1
🡣: 222 stars

Cdist: Configuration Management That Stays Close to Unix Roots

Cdist isn’t about flashy dashboards or enterprise plugins. It’s a minimalist configuration management system designed for people who already speak shell and want full control — without the overhead of agents, databases, or DSLs.

It uses plain shell scripts and SSH. That’s it. Every configuration step — from setting a hostname to deploying a package — is done through type-based modules written in POSIX shell. No interpreters. No agents on the target side. Just the remote system and a working SSH connection.

For sysadmins who prefer simplicity and traceability over abstraction, Cdist fits right in.

What Sets Cdist Apart

Feature | What That Means in Use
——–|————————————————————————
Agentless Design | No daemon, no background process — just push over SSH
Shell-Only Modules | Configuration logic written in POSIX shell — portable and explicit
Idempotent Types | Each “type” ensures system state (like packages, files, users)
Pull or Push | Supports both workflows — fully flexible
Offline Mode | No need for remote internet access on target nodes
Scales Well | Tested on hundreds of nodes — works over SSH fan-out or parallel runs
Bootstrappable | Targets need only SSH and a basic shell — ideal for hardened hosts
No YAML or DSL | All logic lives in executable scripts — no need to learn new syntax

Where It’s Actually Used

– Hardened environments where simplicity and audibility are non-negotiable
– Linux clusters with minimal base systems (e.g., no Python or Ruby)
– Small to mid-sized infrastructures where Ansible feels overkill
– Educational and lab settings for learning shell-based automation

Cdist is particularly attractive to teams that want full transparency in their automation stack — or want to avoid coupling infrastructure to external runtimes.

Quick Setup

1. Install on the host (Debian example)
sudo apt install cdist

Or clone from GitHub:
git clone https://github.com/ungleich/cdist.git
export PATH=$PWD/cdist:$PATH

2. Write your configuration scripts

Define your inventory and types in:
– conf/manifest/init
– conf/type/__package, __file, etc.

Example: ensure vim is installed
__package vim –state present

3. Apply configuration
cdist config -v -i inventory.txt

Runs over SSH to each host listed in your inventory.

Requirements

– Host OS: Any Unix-like system (Linux, BSD, macOS)
– Target: Needs only SSH, shell, and core utilities
– Language: POSIX shell only — no Python, Ruby, or agents
– Dependencies: None beyond SSH and shell tools

Final Note

Cdist doesn’t try to be the next big framework — it tries to be predictable. For admins who already automate with Bash and want structure without surrendering control, it’s a clean, lightweight solution that does the job without drama.

📦 Project Site: https://www.cdi.st
📘 GitHub: https://github.com/ungleich/cdist

Other articles

Submit your application