PVV's multimachine nixos setup
Go to file
Oystein Kristoffer Tveit 4c77c9fc67 Merge pull request 'greg-ng 🎉' (!86) from greg-ng-working-branch into main
Reviewed-on: #86
Reviewed-by: Felix Albrigtsen <felixalb@pvv.ntnu.no>
2024-10-20 01:30:26 +02:00
.gitea/workflows workflows/eval: init - evaluate flake in gitea actions 2023-10-19 23:20:51 +02:00
assets Add PVV logo to repository 2023-09-07 18:39:21 +02:00
base base: openssh fix 2024-10-12 22:32:18 +02:00
hosts bicep/matrix: use sops templates for appservice registrations 2024-10-14 15:46:58 +02:00
keys Add oysteikt to secrets 2022-12-18 00:05:26 +01:00
misc fixup! Merge pull request 'Fix Ildkule/Openstack networking' (!75) from fix-openstack-networking into main 2024-09-05 14:24:40 +02:00
modules modules/grzegorz: use greg-ng 2024-10-19 23:31:28 +02:00
packages bluemap on bekkalokk 💀 2024-09-02 15:11:32 +02:00
secrets bicep/matrix: use sops templates for appservice registrations 2024-10-14 15:46:58 +02:00
users users/danio: add to wheel 2024-10-08 14:08:17 +02:00
.editorconfig editorconfig: init 2024-08-04 04:35:25 +02:00
.envrc direnv: yes 2024-08-04 01:19:22 +02:00
.git-blame-ignore-revs add .git-blame-ignore-revs 2024-08-04 04:39:17 +02:00
.gitignore justfile: add recipe `run-vm` 2024-08-14 17:25:55 +02:00
.sops.yaml fix whitespacing issues 2024-08-04 04:37:23 +02:00
README.MD base: enable rebuilding nixos-config without updating the channels used 2024-09-01 22:10:58 +02:00
flake.lock flake.lock: bump 2024-10-19 23:31:29 +02:00
flake.nix modules/grzegorz: use greg-ng 2024-10-19 23:31:28 +02:00
justfile justfile: fix flake input updating 2024-09-02 19:33:15 +02:00
shell.nix shell.nix: fix typo 2024-08-10 18:15:31 +02:00
statix.toml statix: init 2024-08-04 01:45:20 +02:00
values.nix Add ipv6 gateway 2024-09-28 21:35:57 +02:00

README.MD

PVV NixOS configs

Hvordan endre på ting

Før du endrer på ting husk å ikke putte ting som skal være hemmelig uten å først lese seksjonen for hemmeligheter!

Etter å ha klonet prosjektet ned og gjort endringer kan du evaluere configene med:

nix flake check --keep-going

før du bygger en maskin med:

nix build .#<maskinnavn>

hvis du vil være ekstra sikker på at alt bygger så kan du kjøre:

nix build . for å bygge alle de viktige maskinene.

NB: Dette kan ta opp til 30 minutter avhengig av hva som ligger i caches

Husk å hvertfall stage nye filer om du har laget dem!

Om alt bygger fint commit det og push til git repoet. Det er sikkert lurt å lage en PR først om du ikke er vandt til nix enda.

Innen 24h skal alle systemene hente ned den nye konfigurasjonen og deploye den.

Du kan tvinge en maskin til å oppdatere seg før dette ved å kjøre: nixos-rebuild switch --update-input nixpkgs --update-input nixpkgs-unstable --no-write-lock-file --refresh --upgrade --flake git+https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git

som root på maskinen.

Hvis du ikke har lyst til å oppdatere alle pakkene (og kanskje måtte vente en stund!) kan du kjøre

nixos-rebuild switch --override-input nixpkgs nixpkgs --override-input nixpkgs-unstable nixpkgs-unstable --flake git+https://git.pvv.ntnu.no/Drift/pvv-nixos-config.git

Seksjonen for hemmeligheter

For at hemmeligheter ikke skal deles med hele verden i git - eller å være world readable i nix-storen, bruker vi sops-nix

For å legge til secrets kan du kjøre f.eks. sops secrets/jokum/jokum.yaml Dette vil dekryptere filen og gi deg en text-editor du kan bruke for endre hemmelighetene.

Et nix shell med dette verktøyet inkludert ligger i flaket og shell.nix og kan aktiveres med:

nix-shell eller nix develop. Vi anbefaler det siste. I tilegg kan du sette opp direnv slik at dette skjer automatisk

for å få tilgang til å lese/skrive hemmeligheter må du spørre noen/noe som har tilgang til hemmelighetene om å legge til age eller pgp nøkkelen din i .sops.yaml

Denne kan du generere fra ssh-nøkkelene dine eller lage en egen nøkkel.

Legge til flere keys

Gjør det som gir mening i .sops.yml

Etter det kjør sops updatekeys secrets/host/file.yml

MERK at det ikke er sops -r som BARE roterer nøkklene for de som allerede er i secretfila