Mike Castle wrote: > and so on, it is time to explore solutions. I only have four systems > at the moment (two physical and two virtual), so I don't think I need > something too fancy. > > My first thought was to simply add a `Files:` section to *.control > files I use for my metapackages. After all, for configs going into > *.d directories, they are usually easy to just drop in and remove, no > editing in place required. But, that is when I discovered that all > files under `/etc` are treated specially. > > I've found a lot of documentation out there, but, of course, much of > it is out of date. https://wiki.debian.org/ConfigPackages , for > example, seems to recommend slightly old to really old tools. Tools > like `ansible`, `puppet` and so on seem, at first blush, aimed at > larger installations than mine. But maybe other's experience with > them will show they scale down fine? > > Anyway, suggestions based upon actually experience would be appreciated.
Chef or Puppet are good, but probably not worth the bother for 4-5 systems. Definitely worthwhile for 10+ systems, and scalable to thousands. https://cinc.sh is producing a fully open release of Chef (with the new name, Cinc is not chef). I use Chef at work. The easy end of single-machine is etckeeper, which just checks your /etc (and whatever else you specify) into a local git. The high end of single machine is Nix, which has a complete language designed to capture the complete configuration of a system (and has spawned NixOS, a complete distribution). The easy end of multi-machine systems is cdist and itamae. You might be quite happy with those, and itamae is reputedly very Chef-like. -dsr-