diff options
| author | Joey Hess <joey@kitenet.net> | 2014-03-29 23:10:52 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-03-29 23:16:43 -0400 |
| commit | d9af8bac5eb7836a3c90e37e870fd73d30b841fd (patch) | |
| tree | 40443efd384415172cf393571fe3f1651ea57423 /README | |
initial check-in
too young to have a name
Diffstat (limited to 'README')
| -rw-r--r-- | README | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -0,0 +1,26 @@ +This is a work in progress configuration management system using Haskell +and Git. + +The design is intentionally very bare bones: A git repository holds the +source to a program that ensures that the system meets a set of properties, +taking action as necessary when a property is not yet met. + +Once set up, a system will have this git repository cloned to it, and +the program will be built and run periodically by a cron job. Or something +can ssh in and run it. + +For bootstrapping, the program compiles to a single binary file, +which can be transferred to a host and run. + +Properties are defined using Haskell. There is no special language as used +in puppet, chef, ansible, etc, just the full power of Haskell. Hopefully +that power can be put to good use in making declarative properties that are +powerful, nicely idempotent, and easy to adapt to a system's special needs. + +Also avoided is any form of node classification. Ie, which hosts are part +of which classes and share which configuration. It might be nice to use +reclass[1], but then again a host is configured using simply haskell code, +and it should be easy to factor out things like classes of hosts in an +ad-hoc fashion. + +[1] http://reclass.pantsfullofunix.net/ |
