For those who don’t know what nyble is … you can read an old post here. The short version is that it gives you an always reproducible bootable ramdisk (or stateful if you need) image (installation for stateful folk). You avoid worrying about configuration drift, as you roll a new image in ~10-20 minutes, and turn a configuration management problem into a simpler image management problem. Which may be solved with a database backed booting system like, I dunno, tiburon with minio providing the data store.
I have not yet containerized tiburon and its dependencies, but this is coming soon. I’d like to be able to roll this (complete with minio!) out whereever I need an instant bare-metal or VM booted set of specific images. It’s amazing how much I run into those issues these days. For #HPC.
One of my tests for the debian 10 port was a desire to reload a machine from debian9 to debian10. I could have followed the update docs, but this machine had been updated from debian8 originally, and was getting wonky about installs. I figured a clean reload was in order.
I had tried to load it by hand the night before, but, well, all distro installers are brittle. You should generally spend as little time as possible inside the installer. This has been true of all linux I’ve used. And Irix. And *BSD. SmartOS wasn’t bad on install, though the lack of drivers had been annoying. I’ve put down SmOS for now. Maybe if some big company starts backing it, that will change.
It took about 10 minutes to image the physical machine with this. I have a local debian mirror, so it was pretty fast. I did this by reformatting the /dev/md0 of the machine (where / is located) to an ext4. I would have preferred xfs, but for OS drives, it really doesn’t matter if they are cattle vs pets. This should be cattle, though I had some post install hand config to do. I’ll be working on adding support for that in next bits of nyble, so that physical installations can call a post install configuration step. Right now this is handled at boot time for rambooted machines.
That system is now quite perky, and unbroken w.r.t. package installation. Nvidia card is working great, cuda installed, mellanox drivers installed with the Mellanox OFED 5.x stack.
I wanted to make this work for Ubuntu 20.04 LTS as well. So I copied over the 18.04 directories into a new directory
nyble/OS/ubuntu20.04 , did some edits there and to Makefile, and off to the races we go.
This now creates a nice 20.04 image in about 20 minutes (I don’t have a local mirror of 20.04 yet, though I will soon).
This was a fun weekend project. But its Monday, so back to work I go.
Feel free to pull the projects down, and try them out. I am looking into what the costs of hosting a boot server in a public cloud would be. I’ve got a good internet connection, but booting from it would take a while (potentially up to 400 seconds for transfering images).