Hello everyone, my company (our department is of around 150+ developers/machine learning people/researchers) is currently considering switching from Windows to Gnu+Linux for company devices (as in the machines we use in our daily work) and we are currently in the phase of collecting requirements. I’m not in charge of the process or involved in the decision phase, but as an enthusiast I’m curious about it. We handle data and other sensitive resources, so the environment should remain managed by the IT department (what’s possible to install, VPNs, firewalls, updates and similar). What do companies generally use in this kind of scenario? I’m assuming they generally do some stuff with either Canonical or Red Hat, but are there alternatives? Are there ways to do something that works across distributions by using flatpak or the nix package manager? What are your experiences?

  • theshatterstone54
    link
    fedilink
    arrow-up
    3
    ·
    9 months ago

    I was thinking about that myself, but is there a way to remotely update configuration.nix and rebuild, if the requirements change? For example, if some dev wants to use Geany instead of Vscode and Admin is like “Yeah, why not”, how would that be implemented?

    • Chais@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      9 months ago

      Sure. Pick any orchestration solution you like. Ansible, for example. You’d just change the file that is rolled out for that machine, either by changing some central, per-machine file or its ansible file, then tell ansible to update the file remotely and make it run nixos-rebuild switch on that machine. A few seconds later the tool is installed. If you replaced vscode with geany vscode would be uninstalled, too.

    • Alex@feddit.ro
      link
      fedilink
      arrow-up
      1
      ·
      9 months ago

      IIRC you can apply a confog built locally on a remote host, of you have SSH keys set up

    • notfromhere@lemmy.one
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      9 months ago

      I would consider a git repo of a few standard configurations and switch them to a config that had it, or possibly maintain individual configs per user. Your orchestration would need to reference the git repo so when you need to add software XYZ to everyone’s machine you don’t have to re-run all of the individual playbooks and deal with the hassle of remembering who needed which playbook ran.