Kopioi Github identity tiedosto kohde koneelle:
scp ~/.ssh/github-id-rsa <kone>:
ssh <kone>
sudo su
mv github-id-rsa ~/.ssh/
chown root:root ~/.ssh/github-id-rsa
Lisää rootin ~/.ssh/config
tiedostoon:
Host github.com
User git
IdentityFile /root/.ssh/github-id-rsa
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
koti rakenna <kone>
Esim.
koti rakenna dellxps13
Debuggaus:
koti rakenna --debug <kone>
Flake lockin inputtien päivitys uusimpaan:
nix flake update
Kaikkien koneiden päivitys:
koti rakenna -t boot
Koneiden uudelleen käynnistys:
koti buuttaa
sudo reboot
Jos etäkone ei löydä pakettia cache.nixos.org:sta ja sen käännös epäonnistuu, paketin voi kokeilla asentaa läppärillä ja lähettää sen etäkoneelle ennen deployn uudelleenyritystä.
Esimerkkinä grafanan käännös feilaa kanto koneella:
nix shell --inputs-from . nixpkgs#grafana
which grafana
> /nix/store/bgxpkjnfx9dp3yyjvkcrmcpmga0qiy1w-grafana-10.2.6/bin/grafana
nix-copy-closure --to root@kanto /nix/store/bgxpkjnfx9dp3yyjvkcrmcpmga0qiy1w-grafana-10.2.6
Päivitä nix-kanava ja indeksi:
sudo nix-channel --add https://nixos.org/channels/nixos-24.05 nixos
sudo nix-channel --update
nix-index
Muokkaa flake.nix
tiedostossa inputs
osiossa vanhan version esim. 23.11
merkkijono arvoon 24.05
.
Päivitä lukkotiedosto:
nix flake update
Estä läppärin meneminen valmiustilaan jotta verkkoyhteys ei katkea kesken kaiken.
Testaa että päivitys onnistuu:
koti rakenna -t test <kone>
Lopuksi tee boot entry ja käynnistä kone uudelleen:
koti rakenna -t boot <kone>
koti buuttaa <kone>
Toista kullekkin koneelle.
nixos-rebuild list-generations
Poista vanhat sukupolvet profiilista (säästäen 20 viimeisintä):
sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +20
Päivitä bootin lista sukupolvista:
sudo /run/current-system/bin/switch-to-configuration boot
sudo nix-collect-garbage --delete-older-than 30d
Huomaa, että kannattaa ensin poistaa vanhoja sukupolvia, jotta garbage collector pystyy poistaan myös niiden viittaamat tiedostot storesta.
Minulla on myös automaattinen puhdistus otettu käyttöön kaikilla NixOS koneilla joten tätä ei tarvitse välttämättä tehdä.
Muuta julkisessa flake.nix
tiedostossa private
input muotoon:
private.url = "path:///home/jhakonen/nixos-config/private";
Deploymentti läppärillä:
nix flake lock --update-input private && koti rakenna dellxps13
Deploymentti etäkoneella:
# Aja ensin läppärillä
rsync -r ~/nixos-config <kone>:
# Aja etäkoneella
cd ~/nixos-config/public
nix flake lock --update-input private && sudo nixos-rebuild switch --flake '.#'
koti varmistukset listaa
koti varmistukset palauta <taltio> <kohde>
# Esimerkkiksi:
sudo koti varmistukset palauta taltio:kanto/grafana /var/lib/grafana
Yksittäinen palvelu:
sudo rsync-backup-<palvelu>.sh
# Esimerkkiksi:
sudo rsync-backup-grafana.sh
Kaikki palvelut:
sudo rsync-backup-all.sh