Skip to content

jhakonen/nixos-config

Repository files navigation

Valmistelevat toimenpiteet uudella koneella

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

Konfiguraation deployaus

koti rakenna <kone>

Esim.

koti rakenna dellxps13

Debuggaus:

koti rakenna --debug <kone>

Järjestelmien päivitys

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

Järjestelmän päivitys uudempaan Nixos julkaisuun

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.

Sukupolvien listaus

nixos-rebuild list-generations

Tilan tekeminen nix storeen

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

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ä.

Agenix

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

Git-crypt

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.

Varmuuskopiot

Varmuuskopioiden listaus

koti varmistukset listaa

Varmuuskopion palauttaminen

koti varmistukset palauta <taltio> <kohde>

# Esimerkkiksi:
sudo koti varmistukset palauta taltio:kanto/grafana /var/lib/grafana

Palvelun varmuuskopiointi

Yksittäinen palvelu:

sudo rsync-backup-<palvelu>.sh

# Esimerkkiksi:
sudo rsync-backup-grafana.sh

Kaikki palvelut:

sudo rsync-backup-all.sh

About

NixOS asetukset

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published