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-rsaLisää 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 dellxps13Debuggaus:
koti rakenna --debug <kone>Flake lockin inputtien päivitys uusimpaan:
nix flake updateKaikkien koneiden päivitys:
koti rakenna -t bootKoneiden 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-indexMuokkaa flake.nix tiedostossa inputs osiossa vanhan version esim. 23.11 merkkijono arvoon 24.05.
Päivitä lukkotiedosto:
nix flake updateEstä 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-generationsnh clean all --keep 5 --keep-since 30dMinulla 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>.ageSalatun 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 --rekeyKaikki 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 lockTiedostojen palautus kryptaamattomiksi tapahtuu komennolla:
git crypt unlock ./nixos-config.keyAvaintiedosto on salasanakannassa.
koti varmistukset listaakoti varmistukset palauta <taltio> <kohde>
# Esimerkkiksi:
sudo koti varmistukset palauta taltio:kanto/grafana /var/lib/grafanaYksittäinen palvelu:
sudo rsync-backup-<palvelu>.sh
# Esimerkkiksi:
sudo rsync-backup-grafana.shKaikki palvelut:
sudo rsync-backup-all.sh