This repo is structured to be forked and used for managing and updating a fleet of thin clients in the field.
This is a nixos module that defines shared configuration between the thin clients and the installation media.
Defines the configuration of the base system. This configuration will be inherited by the files in the ./hosts
directory.
Defines the configuration used to create the installation ISO image.
nix
files in this directory will be added to the flake's '#nixosConfigurations' by extending the configuration #nixosConfigurations.physical
.
nix run '.#runVm' # or just "nix run"
A custom installer for the thin client configuration defined by this flake that supports offline installations.
Be warned! It takes an eternity to build and the resulting iso is ~8GiB.
nix build '.#makeIso'
After booting the installer, the command online-unattended-install
will be available. Needs to be run by root or with sudo.
online-unattended-install --target /dev/[disk] [--configuration [system in ./hosts]] [-- [optional disko-install flags]]
online-unattended-install
is a simple a wrapper for disko-install
.
See disko-install.
The installer supports offline installation by realizing the configuration physical
and the disko script used to create the disk layout on the target system.
NOTE This is less flexable and assumes a lot about the disk layout of the system in question. In my environment, this will be used on homogenous hardware and isn't a concern, but will likely be a concern for others. Prefer the online installation if possible, as you can directly choose a host configuration and target disk at install time.
sudo create-partitions # format the drive /dev/sda and mount it to /mnt
sudo install-wrapper # install the #physical configuration to the directory tree '/mnt'
After a reboot, the system will likely need to be reconfigured remotely using nixos-rebuild boot --flake '#the-host' --target-host ssh://physical.local
.