Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
More and more guix or nixos seem like good practical choices for these kinds of use cases. I prefer guix as it's a little less finicky (though https://gitlab.com/nonguix/nonguix is probably required for all non-purists such as this lowly worm).
Ubuntu OS is now stinky doodoo, which is a shame as it used to be the cat's pajamas for ease of use. Snapd is a debacle.
There have been various different setups here. Have you looked at Matchbox?
> matchbox is a service that matches bare-metal machines to profiles that PXE boot and provision clusters. Machines are matched by labels like MAC or UUID during PXE and profiles specify a kernel/initrd, iPXE config, and Ignition config.
https://github.com/poseidon/matchbox
> Appimage is basically a linux port of the windows workflow where you download an exe file from random sites and run it. No update mechanism, no discovery, no install/remove mechanisms no sandboxing.
Not 100% true. See e.g.
https://github.com/probonopd/go-appimage/blob/master/src/app...
Since the AppImage format is always the same and not just a random .exe it is possible to build tools around them.
I did this for a few years with cobbler (https://cobbler.github.io/). cobbler, pxe, bootp, tftp, ansible and friends pretty much solve this problem. In fact, if you know the mac addresses (or ranges) you can fairly easily designate groups of machines, roles, and the like.
Years ago I did this to "rapidly" provision a couple of thousand machines we bought for the stock exchange. You can do most of your testing locally in vagrants, even simulating the networks you need to provision.
You can go a step further and trigger api updates at the end of your ansible runs so that cobbler updates collins