I find it nice to be able to simply make changes as I need directly on the system without going through any config management abstractions. But then I have a record of previous state a can revert to. It's simple and works well.
Ask HN: Configuration Management for Personal Computer?
41–50 of 144 posts
Re: Ask HN: Configuration Management for Personal Computer?
#42Re: Ask HN: Configuration Management for Personal Computer?
#43NixOS can be helpful here, by making all of the non-user-specific stuff completely reproducible; combine that with Git versioning for dotfiles and a NAS for backups and large storage and your setup should be pretty easy to manage.
Re: Ask HN: Configuration Management for Personal Computer?
#44I moved from Ubuntu to OpenSUSE Tumbleweed with almost no downtime. Only two things I had to change IIRC was to create the same group as Ubuntu with GID 1000 (100 on TW) and to find out the different package names because ubuntu is a mess.
The process that lead me to my current setup
- Install OS fresh (always using the same username because there are many cases where you can't eval or access env's)
- Ignore most of the $XDG folders except Desktop and Downloads.
- Have a centralized root folder and a scripts folder inside of it. All my scripts start with a check to see if the root is correct by checking an ENV
- Start a repo bare = false, worktree = /home/user, and use git add + excludesFile. I've tried everything there is and this is the best option by far because it's way faster, you have to be explicit about what's in your vcs. On VCS GUI .desktop I have added MimeType=inode/directory; so it's aware of the root.
- All my dotfiles are there but I use KDE and I added all the config files I care about so I can see what changes on updates, it helped me debug problems on update more than once.
- Don't customize the OS manually in any way (unless the GUI writes to a config file), create a script and only make changes through it. That includes what you install, what you remove, config changes, daemons, EVERYTHING.
- I prefer programs that are configurable by config/plain text files.
It's "reproducible", you have a script that describes your OS.
Personally use flatpak for everything that isn't on TW's repos and docker/podman for local development.
Now some examples of things in my script that also show some statistics after I run it. There's also a "first run" set of functions that I only run when it's a clean install.
sudo zypper install "${LIST_OF_PROGRAMS_TO_INSTALL[@]}" sudo zypper remove --clean-deps "${LIST_OF_PROGRAMS_TO_REMOVE[@]}" sudo zypper addlock "${LIST_OF_PROGRAMS_TO_REMOVE[@]}"
sudo systemctl enable "SVC" sudo usermod -a -G "SVC" $(whoami) sudo firewall-cmd --permanent --zone=ZONE --add-source=SRC
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install --user -y flathub org.freedesktop.Platform//18.08 org.freedesktop.Sdk//18.08 flatpak install --user --noninteractive "APP" flatpak update -y
And things like enforcing correcting permissions for .ssh, .gnupg. Set up mounts and shares.
My root partition is btrfs, home is xfs. But I keep a tab on it with sudo btrfs filesystem usage /.
I have tested a lot of tools and in the end there's no replacement to discipline (it becomes second nature) and using a script instead of relying on 3rd party tools for config/provisioning.
Re: Ask HN: Configuration Management for Personal Computer?
#45Re: Ask HN: Configuration Management for Personal Computer?
#46For me it was "easy" on Linux. But you need to commit to it, no pun intended. I moved from Ubuntu to OpenSUSE Tumbleweed with almost no downtime. Only two things I had to change IIRC was to create the same group as Ubuntu with GID 1000 (100 on TW) and to find out the different package names because ubuntu is a mess. The process that lead me to my current setup - Install OS fresh (always using the same username becaus…
Re: Ask HN: Configuration Management for Personal Computer?
#47Unsure if mentioned already, but I keep a repository of all my Linux configuration files. I have scripts that link them all out to the correct places. Then for almost any tweak I make, I script it into a massive install.sh script I maintain. Now I'm at a point where I can set up a 98% perfectly customized machine with a sequence of `./install.sh some_scripted_setting` calls. All this takes effort and care, but well w…
Re: Ask HN: Configuration Management for Personal Computer?
#48NixOS can be helpful here, by making all of the non-user-specific stuff completely reproducible; combine that with Git versioning for dotfiles and a NAS for backups and large storage and your setup should be pretty easy to manage.
Re: Ask HN: Configuration Management for Personal Computer?
#49I think overall its a mistake to try to over automate this process. It's brittle and the requirements are simply not the same as a server environment that needs to be simple to replicate X versions quickly, repeatedly and frequently. Automation 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 interfac…
> I think overall its a mistake to try to over automate this process. It's brittle and the requirements are simply not the same as a server environment that needs to be simple to replicate X versions quickly, repeatedly and frequently. > Do you reinstall your workstation once a week? Unlikely and probably would be an unproductive use of your time. It's not about how often I reinstall. It's about how many machines I w…
- Running `defaultinstall` will install vim, git, iotop, progress, curl, and other essentials, and it runs apt-file update.
- Running `defaultinstalloptional` will pull more packages like sipcalc, cloc, woof, and other packages that I like but are not something I use on every system or do not use regularly.
- Running `defaultinstallwifi` pulls wavemon, iw, and wireless-tools; `defaultinstallprogramming` gets me interpreters and compilers that I regularly use; `defaultinstallgui` gets me GUIs that I use (audacity, gimp, wireshark, xdotool, xclip, etc.); etc.
On a new system I run whichever ones are applicable (e.g. a desktop may be GUI but not WiFi). Together with copying .bashrc, .vim/, and .vimrc, that's 90% of the setup I need for a non-GUI system. On a GUI system, I will want to set some task bar preferences. Only replacing my main system is an exception: I'll simply copy my filesystem from the old system (or, more often, physically move over the SSD), since I'll want to have the files, firefox profile, thunderbird config, etc. anyway.
Takes nearly zero time to maintain and is not dependent on anything that I don't already consider essential (Debian won't ship without bash-compatible shell or a package manager for a long time) so there is only one manual pre-setup step: copying a text file.