I’m looking for interesting tools to automate managing packaging and configuring everything automated.
And yeah I know about NixOS but I like to distro hop and experiment so I for now know these:
- Ansible - automating many machines, using different package names as vars and package managers.
- Bash - the most native and compatible scripting language that can be.
- Chezmoi - for dotfiles.
For now that’s it. I’m looking forward for your suggestions!
I have a custom /etc/profile that loads
/etc/session.d/$HOSTNAME-$USER
scripts.Chezmoi looks interesting. I’ve just been using xstow.
Ansible is probably the most mature
And industry sstandard, yeah.
After some manual reinstalls and much repetition, I’ve been using a custom script for the past year or so, which I’m slowly open sourcing through a rewrite.
I use SaltStack to automate my servers. Just feels better than Ansible to me.
For my PC and laptop I don’t do anything, I haven’t hopped distribution since I started using Tumbleweed a few years ago.I heard about Salt being better alternative than Ansible. Why? I see.
The clear cut of state data, pillar data and formulae feels more intuitive to me than Ansible’s playbook organization.
For person using only Ansible I don’t know what are you talking about. 😆
ansible claims to be lots of things it’s not. It’s supposed to be idempotent. It’s not, you can execute arbitrary scripts. You don’t need an agent on the machines… but it might just decide to stop supporting your version of python one day. It’s okayish for setting up some machines, but absolutely sucks for maintaining them.
My dotfiles aren’t distro-specific because they’re symlinks into a git repo (or tarball) + a homegrown shell script to make them, and that’s about the end of it.
My NixOS configuration is split between must-have CLI tools/nice-to-have CLI tools/hardware-related CLI tools/GUI tools and functions as a suitable reference for non-Nix distros, even having a few comments on what the package names are elsewhere, but installation is ultimately still manual.
flakes and lock files are next level.
@Psyhackological I’ve cut the Gordian knot by running one distro everywhere
I haven’t. But having my home dir be a git repo helps a great deal. The rest I install when I need it
chezmoi does basically that, without actually making your home dir a git repo, it just syncs it. It also supports templating and per-machine differences. Pretty cool really.
One thing I like to have with me is the AppImage version of programs when possible, since they usually work out of the box. Also helps ensuring I don’t depend on the availability of whatever package manager the system uses.
Do they also embed the configuration inside of them? But for many dependencies and binaries I don’t think that would be a good case scenario compared to package manager.
I’ve become a Flatpak fan for a similar reason.
i’ve used Chezmoi for years now pretty successfully. works on my Mac and Linux machines. it probably could be made to work on Windows. i am transitioning to NixOS, but i’ll probably keep using it anyway, since i still have Macs for work (and because they’re great laptops don’t @ me). the only real downside is that it only works for the home folder, so i have to manually control stuff for
/etc
, but i generally prefer user configuration for most tools anyway.i had messed around with Ansible for this in the past, but i didn’t really like it for this use case. it’s been a while tho so it’s hard to say why.
not to pile on, but you might also look at GNU Stow. i decided against it, but it’s there.
obligatory i s’pose: https://github.com/covercash2/dotfiles
Yeah I see everyone saying chezmoi is great.
Ansible seems fine but also complicate many thing not doing something in bash.
GNU Stow seems even more complication than Ansible.
Bash seems the most simplest one.
I’m not a Mac fan, but I do keep a Hackintosh VM with GPU passthrough to run the occasional XCode and the like or send a text message when I’m too lazy to pull out my iPhone. I will say that MacOS’s standardized interface is rather nice, though.
Wow, you went through hell with this Hacintosh. Interesting that you have an iPhone not Android when you use Linux.
On one hand, I did go through heck at one point trying to get the config.plist right to no avail. I then found some guy’s preconfigured OpenCore image made specifically for virtual machines (I usually avoid such things, but as a VM is basically a standardized platform, I’ll take it), upon which my life has been very easy ever since. Passthrough was just a matter of copying my Windows passthrough scripts.
One day, I want to buy a Google Pixel and run LineageOS, but I’m not in the position to do that right now.
Oh, do you have a steps to reproduce it?
I’m writing from [GrapheneOS] (https://grapheneos.org/) right now. I recommend it more over LineageOS as it seemed more polished and profiled. I have OnePlus 7 Pro with LineageOS MicroG though.
I’ve tried to move as much as I can into Flatpak. That way I can just copy my
.var
folder, and all my apps are migrated.For other things like my configs, I use a git repo.
Most of my files are different across machines because of different themes etc. The only dotfiles I have synced across machines are my
.zshrc
,.gitconfig
,.ideavimrc
(not my actual vimrc because it has some machine-specific theming), and.p10k.zsh
. I have them all in a folder synced with syncthing and then I symlink~/.zshrc
to e.g.~/dotfiles/.zshrc
.Chezmoi has an amazing templating feature to address different files on different machines. It’s worth the time to set up.
Nix, the package manager, is distro-agnostic. Add Home Manager on top of it and you’re good to go; both packages and dotfiles are dealt with.
Hm I see, thanks. A good one when you have it installed on every machine.
I do this in combination with Nix-Darwin for one of my machines. I also have some Kubernetes clusters and RISC-V machines running bare metal executables using NixOS-Anywhere and some other stuff.
That does not sound like some basic stuff though. 😆