The disks of the target devices need to be configured before the rollout can start.
SSH access from your setup device to all target devices
Double check that each machine has a hardware report saved under machines/YOUR-MACHINE-NAME/facter.json
By default clan uses disko which allows for declarative disk partitioning.
To see what disk templates are available run:
$ clan templates list
Available 'clan' templates
├── <builtin>
│ ├── default: Initialize a new clan flake
│ ├── flake-parts: Flake-parts
│ ├── flake-parts-minimal: Minimal flake-parts clan template
│ └── minimal: for clans managed via (G)UI
Available 'disko' templates
├── <builtin>
│ └── single-disk: A simple ext4 disk with a single partition
Available 'machine' templates
├── <builtin>
│ ├── flash-installer: Initialize a new flash-installer machine
│ └── new-machine: Initialize a new machine For this guide we will select the single-disk template, that uses A simple ext4 disk with a single partition.
For advanced partitioning, see Disko templates or Disko examples. You can also contribute a disk template to clan core
To setup a disk schema for a machine run
clan templates apply disk single-disk jon --set mainDisk "" Which should fail and give the valid options for the specific hardware:
Invalid value for placeholder mainDisk - Valid options:
/dev/disk/by-id/nvme-WD_PC_SN740_SDDQNQD-512G-1201_232557804368 Re-run the command with the correct disk:
clan templates apply disk single-disk jon --set mainDisk "/dev/disk/by-id/nvme-WD_PC_SN740_SDDQNQD-512G-1201_232557804368" Should now be successful
Applied disk template 'single-disk' to machine 'jon' A disko.nix file is created in machines/jon You can have a look and customize it if needed.
Don't change the disko.nix after the machine is installed for the first time, unless you really know what you are doing.
Changing disko configuration requires wiping and reinstalling the machine.
Check your machines/ folders for the disk files. If a machine sub-folder does not contain a disk file, the setup ran into an error and needs to be restartet for the particular machine.
After all preparations are done, we can now start the actual deployment process.