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!

  • chameleon@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    10 months ago

    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.

  • KindaABigDyl@programming.dev
    link
    fedilink
    arrow-up
    17
    ·
    10 months ago

    And yeah I know about NixOS but I like to distro hop and experiment

    If you know about NixOS, then you probably know this, but Nix, the package manager/the language behind NixOS, is cross-platform.

    I daily drive NixOS, but I also use Nix (and home-manager) on my Fedora music laptop, my Ubuntu home file-server, and my work Windows machine (WSL) to install and configure neovim automatically instead of copying a config, installing all the packages, and running check health over and over again until everything is set up.

    I just copy my neovim.nix file over (also other things like zsh.nix) and run home-manager switch

    You don’t have to use NixOS to take advantage of its benefits.

    • Psyhackological@lemmy.mlOP
      link
      fedilink
      arrow-up
      3
      ·
      10 months ago

      It always seemed to me like Nix package manager is not “native” enough or there are some downsides compared to dnf or apt. If that’s not the case I think I’ve got my answer.

  • communism@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    10 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.

  • ipkpjersi@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    10 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.

      • ipkpjersi@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        10 months ago

        Nope. I’m more of a dev than a sysadmin these days, pretty much always have been, so I never bothered learning something like Ansible or Puppet or Chef etc. A couple Bash scripts can get me nearly entirely set up so it’s all I ever really needed.

  • k4j8@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    I wrote my own program, filetailor. It’s similar to Chezmoi but uses inline comments instead of templates for machine-specific lines. This allows me to make edits directly to my local files and then sync those changes to other machines.

    I also use Ansible.

  • Thurstylark@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    ·
    10 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.

    • demesisx@infosec.pub
      link
      fedilink
      English
      arrow-up
      14
      ·
      10 months ago

      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.

  • Auster@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    10 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.mlOP
      link
      fedilink
      arrow-up
      1
      ·
      10 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
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        10 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.