diff options
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/ |
