You are not logged in.
Hey guys,
Does anyone here use some kind of configuration management software (such as puppet, chef, salt, etc) to manage single arch boxes?
I have a couple machines at home that are pretty bare-bone single-job boxes and I thought it would be nice to have all their configuration stored away in version control (my htpc and home file server).
I was curious what people's favorite solutions to this are?
Thanks!
Last edited by EvanPurkhiser (2015-12-21 08:58:02)
Offline
There is etckeeper.
It keeps track of all changes done in /etc via VCS. You can commit changes manually and also enable periodic automatic commits.
I don't know whether it has an option to automatically push the config to a remote, though, but I guess that should be possible too (I haven't personally set up an etckeeper on my own machines yet).
Offline
Thanks ayekat,
I think I'm actually looking for something I suppose slightly heavier than that. I would basically like to be able to go from a clean installation of arch to the precise configuration of each machine. I would want this to be idempotent, so any configurations changes that I'd like to make can be done in the configuration source, and then can be applied to the machine.
I know I'm basically describing more or less what puppet, chef, salt, etc can do. I was just wondering if anyone had any solutions that weren't as designed for managing hundreds of servers.
Offline
I'm quite interested in this as well; I did work on a program written in Go to handle config management for a while.
My original/current scheme involves a whole bunch of meta-packages: packages depending on other packages, enabling systemd services, installing config files.
They have a couple of limitations, namely that patching config files is ugly currently, and that the dependencies are "hard". But I'm hoping that the config file patch management will be simplified by pacman hooks, which are due in the not-too-distant-future.
It's quite simple to set up, especially if you are familiar with writing PKGBUILDs.
Offline
I experimented with a home-grown solution for a bit:
gnu stow with --target=/ for system-wide configuration files
xargs pacman -S + text files for installing packages (I wish we had something like Gemfiles for pacman)
custom scripts for enabling services and fetching packages from the aur
It broke easily and was more trouble than it was worth, but I learned a lot. Now I just use stow for dotfiles in $HOME and document my system-wide configurations. Documentation > Automation?
https://www.gnu.org/software/stow/manual/stow.html
Last edited by danielgreve (2015-12-22 06:55:06)
Offline
I use Ansible for managing my two Arch machines + 1 Ubuntu VPS. It does take some setup work, but it's lightweight, idempotent (generally) and probably the easiest to get up and doing useful work quickly of the various major CM programs (Ansible, Chef, Salt, Puppet). I also use Stow for managing dotfiles, but for the rest of the setup (especially for installing a list of packages, installing custom scripts, and getting my Docker containers built and running), using Ansible is a significantly better solution than trying to reinvent the CM wheel (although we almost all do that in some way or another anyways ).
Scott
Offline