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
nh clean all --keep 5 --keep-since 30d
Minulla on myös automaattinen puhdistus otettu käyttöön kaikilla NixOS koneilla joten tätä ei tarvitse välttämättä tehdä.
Salaisuudet on jaettu kahteen eri kansioon:
agenix
: Agenix työkalulla kryptatut salaisuudet, nämä ovat kryptattuna nix-storessa ja salaus puretaan vasta aktivointivaiheessa.encrypted
: Git-crypt työkalulla kryptatut salaisuudet, nämä on selkokielisenä nix-storessa. Salaus puretaan git pullin yhteydessä.
Tiedostot agenix
kansiossa joiden pääte on .age
ovat salattuja tiedostoja.
Uuden salatun tiedoston lisäys tapahtuu lisäämällä tiedostolle rivi agenix/secrets.nix
tiedostoon. Sen jälkeen luo tiedosto komennolla:
cd agenix
agenix -e <salaisuus>.age
Salatun tiedoston muokkaus tapahtuu samalla komennolla.
Salatun tiedoston poistaminen tapahtuu poistamalla sen .age
-tiedosto. Poista myös sen rivi agenix/secrets.nix
tiedostosta.
Jos muutat tiedostojen julkisia avaimia agenix/secrets.nix
tiedostossa, niin silloin tulee ajaa komento:
cd agenix
agenix --rekey
Kaikki tiedostot encrypted
kansiossa (ja alikansioissa) salataan ja puretaan automaattisesti git
komentojen yhteydessä.
Tiedostot voi halutessaan salata niin että tiedostot ovat salattuna levyllä käyttäen komentoa:
git crypt lock
Tiedostojen palautus kryptaamattomiksi tapahtuu komennolla:
git crypt unlock ./nixos-config.key
Avaintiedosto on salasanakannassa.
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