@adam/cfgmgmt
SSH-based configuration management for Linux and macOS.
Manage remote systems over SSH using the check/apply pattern — every model
is idempotent and reports whether resources are compliant, non-compliant,
applied, or failed. Convergence failures propagate as step failures so
workflow orchestration can detect and react to errors.
Includes 36 model types:
- **@adam/cfgmgmt/node** — Gather system facts (OS, arch, package managers)
- **@adam/cfgmgmt/file** — Create, update, or remove files
- **@adam/cfgmgmt/template** — Render EJS templates and deploy to remote hosts.
Uses `<%= var %>` for plain string interpolation (HTML escaping is disabled).
Whitespace control: `-%>` strips the trailing newline (use on loop/conditional
lines to avoid blank lines in output), `<%_ %>` strips leading whitespace,
`_%>` strips all trailing whitespace.
- **@adam/cfgmgmt/directory** — Create or remove directories
- **@adam/cfgmgmt/link** — Manage symbolic links
- **@adam/cfgmgmt/line** — Edit individual lines in files using regex matching
- **@adam/cfgmgmt/exec** — Run commands with onlyIf/notIf guards
- **@adam/cfgmgmt/systemd** — Manage systemd services and unit files
- **@adam/cfgmgmt/dnf** — Manage packages on Fedora/RHEL (with version pinning)
- **@adam/cfgmgmt/apt** — Manage packages on Debian/Ubuntu (with version pinning)
- **@adam/cfgmgmt/pacman** — Manage packages on Arch Linux
- **@adam/cfgmgmt/homebrew** — Manage packages on macOS
- **@adam/cfgmgmt/apt_repository** — Manage apt sources and GPG keys
- **@adam/cfgmgmt/dnf_repository** — Manage dnf/yum repository files
- **@adam/cfgmgmt/hostname** — Set system hostname
- **@adam/cfgmgmt/timezone** — Set system timezone
- **@adam/cfgmgmt/user** — Manage system users
- **@adam/cfgmgmt/group** — Manage system groups
- **@adam/cfgmgmt/authorized_key** — Manage SSH authorized keys
- **@adam/cfgmgmt/host_entry** — Manage /etc/hosts entries
- **@adam/cfgmgmt/sysctl** — Manage kernel parameters
- **@adam/cfgmgmt/kernel_module** — Load/unload kernel modules with persistence
- **@adam/cfgmgmt/cron** — Manage cron jobs
- **@adam/cfgmgmt/mount** — Manage filesystem mounts and fstab
- **@adam/cfgmgmt/firewall** — Manage firewall rules (ufw/firewalld/iptables)
- **@adam/cfgmgmt/selinux** — Manage SELinux mode and booleans
- **@adam/cfgmgmt/docker_image** — Manage Docker images
- **@adam/cfgmgmt/docker_container** — Manage Docker containers
- **@adam/cfgmgmt/git** — Manage git repository checkouts
- **@adam/cfgmgmt/archive** — Extract archives idempotently
- **@adam/cfgmgmt/copy_file** — Copy a local file to remote hosts via SCP
- **@adam/cfgmgmt/fetch** — Download files from URLs with checksum verification
- **@adam/cfgmgmt/reboot** — Reboot hosts and wait for SSH reconnection
- **@adam/cfgmgmt/debug_exec** — Run a command on a remote host and capture stdout, stderr, and exit code as data
- **@adam/cfgmgmt/debug_file** — Fetch a remote file's content and store it as data
- **@adam/cfgmgmt/certificate** — Deploy SSL/TLS certificates with validation
Every model is a factory across hosts — a single definition can target
multiple hosts via workflow forEach, with per-host data stored separately.
Connections are multiplexed via OpenSSH ControlMaster sockets. All models
(except node and homebrew) support sudo privilege escalation.
linux-x86_64linux-aarch64darwin-x86_64darwin-aarch64
cfgmgmtsshlinuxmacosfedoradebianubuntuarchlinux
models
2026.03.30.1