Simple CONFiguration Manager
- A brutally simple way to manage system(s) configuration(s)!
I really hate YAML and other preprocessing languages and the complexity of a lot of tools like Ansible that use them.
It's not that I can't use them, I frankly am forced to. But I find them quite unelegant and not cool in terms of actually being able to look at config file differences.
- And if I have to version the actual config files to catch errors, I might just directly version the config files properly.
We don't want to install yet another tool on a specific server, but be able to just deploy/restore a specific config.
- The config managment and -versioning is done with
gitand/or the IDE/editor of choice for the admins. - No need to setup yet another server just to manage the "slaves".
- Works with anything one can mount and run git through!
Tools like Ansible, Saltstack, Guix, etc. are all fine and useful - no question about that - but they do require supporting the target systems' OS.
- Usually said Configuration Managment solutions require the ability to if not install their own "agent", at least run / deploy one as a persistent executeable, which necessitates the ability to install, add and run arbitrary code.
- They also tend to require if not
root, at leastsudoprivilegues or at the absolute minimum a local shell.- Something that may purposefully be absent in many cases (i.e. shared Webservers & Webhosting/Application Hosting offers).
Using git, one can version and change them.
- Using
rsync&gitone can backup them into a seperate branch and thus make it easy to backroll changes. - Using
sshand theauthorized keysfeature, access control is also versioned.- No need to fiddle with
secretsorvaults.
- No need to fiddle with
Simple hierachy of files:
configs- configurationsscripts- The scripts to acrually manage (backup & deploy) said configs from any machine.- bash -
bashscripts- scripts
- bash -
All configuration files are where they are expected.
- No need to have some configuration file parser, just simple files and changes.
Configuration is as portable as can be.
- All config files are where they are expected.
Backups are a breeze.
- Just make a pull of the
gitand shove it wherever you feel it's most secure.