Skip to content

Latest commit

 

History

History
204 lines (144 loc) · 4.39 KB

README.md

File metadata and controls

204 lines (144 loc) · 4.39 KB

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

Vanhojen sukupolvien poistaminen

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

Tilan tekeminen nix storeen:

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

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