source/projects/smith
2024-02-06 10:01:19 -07:00
..
src/python/smith Fmt. 2023-07-06 22:55:26 -06:00
BUILD.bazel BUILD.bazel 2024-02-06 10:01:19 -07:00
README.md [NO TESTS] WIP 2023-05-10 22:46:01 -06:00
smith.jpeg [NO TESTS] WIP 2023-05-10 22:46:01 -06:00

Smith

An agent Mr. Smith

Smith is, in many ways, a clean sheet implementation of cram.

Cram as a tool has been quite successful at implementing an agentless (get it) masterless configuration. Clone a git repo and apply the config.

The miss of Cram is that it's really only designed to install static files, and really only to a homedir. Installing packages is frankly a dirty hack.

In contrast to Cram's static configurations and mostly static actions, Smith has much more in common with Ansible, Puppet or Saltstack.

Like these full up configuration management systems, Smith features an inventory system, a package manager abstraction, templating features and - unlike these other systems - a core action model and changelog.

Also like those other systems, Smith uses a "real" configuration language for defining "modules".