Every couple of years I find myself facing the same old tired routine: migrating my stuff off some laptop or desktop to a new one, usually combined with an OS upgrade. Is there anything like the kind of luxuries we now consider normal on the server side (IaaS; Terraform; maybe Ansible) that can be used to manage your PC and that would make re-imaging it as easy as it is on the server side?
Ask HN: Configuration Management for Personal Computer?
1–10 of 144 posts
Re: Ask HN: Configuration Management for Personal Computer?
#2Re: Ask HN: Configuration Management for Personal Computer?
#3Re: Ask HN: Configuration Management for Personal Computer?
#4- https://github.com/lvancrayelynghe/ansible-ubuntu
It has some bells and whistles I stripped out (or wished I did).
One of the problems I haven't really solved: ongoing updates. Say I need to install a new apt package. Do I update the Ansible playbook and rerun it? I probably should. But more often, I just install it from the command line. Now my image is out of sync.
Also certain applications like Jenkins seems surprisingly hostile towards reproducible builds.
Re: Ask HN: Configuration Management for Personal Computer?
#5Re: Ask HN: Configuration Management for Personal Computer?
#6[0] - https://coderwall.com/p/afmnbq/homebrew-s-new-feature-brewfi...
Re: Ask HN: Configuration Management for Personal Computer?
#7Re: Ask HN: Configuration Management for Personal Computer?
#8Re: Ask HN: Configuration Management for Personal Computer?
#9Re: Ask HN: Configuration Management for Personal Computer?
#10Automation needs fairly constant attention in the order of little tweaks week over week to fight the inevitable mismatch between the automation and the software networks that it interfaces with.
Do you reinstall your workstation once a week? Unlikely and probably would be an unproductive use of your time.
The way I approach it instead -
The first thing I do is list everything I need for a workstation in an orgmode text file. For why orgmode really works well for this -
http://howardism.org/Technical/Emacs/literate-devops.html
I aim to make a "computational document" that I can execute a bit at a time as I review/check each piece on installs and upgrades of the system.
To me it's really critical that there are links to the webpages and text notes about these configurations alongside the code I'm using.
I check this and the needed config files into a single git repository.
As the workstations (I use the same document for workstation,laptop, studiopc, homeserver, android) age I'm inevitably adding and upgrading bits of the git repository. I make sure that I work from the orgmode document whenever I touch any configuration.
I use Linux and Emacs (which means a big part of my software environment is in a git controlled .emacs.d) so the entire environment supports this workflow.