Deployment and updates
The fleet is deployed with colmena 🡕: a single command builds and applies the configuration on one or more hosts, remotely, from the admin workstation.
Apply a configuration
Section titled “Apply a configuration”just apply <target> [action] # alias : a- target = hostname, pattern (
'*'), list (a,b) or colmena tag (@server). - action =
switch(default),boot,testorbuild.
| Command | Purpose |
|---|---|
just apply <target> | Build + activate on the target(s) |
just apply-local | Apply on the current machine (alias al) |
just apply-verbose <target> | Same as apply in trace mode (alias av) |
Deploy safely
Section titled “Deploy safely”Build confidence through action: each step is less risky than the next.
just apply <host> build # downloads + compiles: 100% safe, nothing is activatedjust apply <host> test # activates without switching: no generation, no bootjust apply <host> # switch: activates and creates a new generationProgress from core to edge: deploy nodes in this order, to never cut off access to a node by the one preceding it.
Update
Section titled “Update”The system is pinned by flakes. Updating = refresh the inputs, then redeploy.
just update-flake # updates dnf/ + root, commits the locksjust apply '*' # deploys the updateBinary cache
Section titled “Binary cache”The harmonia service acts as a signed binary cache for the fleet, and ncps relays it. Hosts thus retrieve already-built derivations instead of recompiling, which significantly speeds up deployments.