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!

  • PlexSheep@infosec.pub
    ·
    4 months ago

    I haven't. But having my home dir be a git repo helps a great deal. The rest I install when I need it

    • F04118F@feddit.nl
      ·
      4 months ago

      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.

  • Auster@lemm.ee
    ·
    4 months ago

    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.

    • Psyhackological@lemmy.ml
      hexagon
      ·
      4 months ago

      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.

      • Auster@lemm.ee
        ·
        edit-2
        4 months ago

        There are cases where AppImages aren't viable indeed, like with programs that require ring 0 access. But limitations exist for all formats, so perhaps another good alternative is having multiple versions of a given program, like downloading the equivalent deb package through apt while also keeping the appimage version. It would bloat the storage for a potential automated configuration, but it should help with ensuring compatibility.

  • Telorand@reddthat.com
    ·
    4 months ago

    You can make a custom distro based on one of the Universal Blue or Fedora Atomic images.

    https://github.com/ublue-os/image-template

    You could also go to the bleeding edge, make a Containerfile, and use bootc and podman to build a bootable container.

  • communism@lemmy.ml
    ·
    4 months ago

    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.

  • Takios@discuss.tchncs.de
    ·
    4 months ago

    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.

      • Takios@discuss.tchncs.de
        ·
        4 months ago

        The clear cut of state data, pillar data and formulae feels more intuitive to me than Ansible's playbook organization.

          • vrighter@discuss.tchncs.de
            ·
            4 months ago

            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.

  • Thurstylark@lemm.ee
    ·
    4 months ago

    I use vcsh and myrepos.

    vcsh allows you to run multiple git repos that share ~ as their root, and mr simplifies/automates the management of those multiple repos. You can check out my setup here.

  • ipkpjersi@lemmy.ml
    ·
    4 months ago

    I have a Linux setup script that downloads a bunch of config files and sets them up. I also have backups of my zshrc and other configs, and that helps a ton too. I have a Linux scripts repo on GitHub where I toss all my Linux scripts and that's quite helpful too.

  • data1701d (He/Him)@startrek.website
    ·
    4 months ago

    I’ll be frank - I never have, though I probably should. For me, if an application’s configuration ever annoys me enough, I just manually copy the config from a machine that I already did the config.

    One day, I may set up a shell script based on Debian’s Debootstrap that feeds it a list of packages (I think you can provide it a text file with a list of packages) to get everything set up, but that day is not today.