Projekt

Allgemein

Profil

Aktionen

Aufgabe #1820

offen

Aufgabe #1817: Update aller Instanzen mit NixOS von 23.05 -> 23.11

NetBox Update Nix-Channel 23.05 -> 23.11

Von SoerenBoxberger vor 5 Monaten hinzugefügt. Vor 4 Monaten aktualisiert.

Status:
Feedback
Priorität:
Normal
Kategorie:
Instanz NetBox
Beginn:
30.11.2023
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Gibt es breaking Changes zwischen den Anwendungsversionen?

Für PostgreSQL wechselt die Default-Version von 14 auf 15

NetBox selbst hat breaking changes in Version 3.6.0 (https://docs.netbox.dev/en/stable/release-notes/version-3.6/#breaking-changes), welche für uns aber augenscheinlich irrelevant sind.

Lohnt es sich die stateVersion zu updaten?

Ja, die Default-Version der NetBox wird sonst auf die 3.5.9 gesetzt, mit state version 23.11 kommt man auf die 3.6.6

Mit stateVersion 23.11 muss `networking.defaultGateway.interface` zusätzlich zur IP-Adresse gesetzt werden, sobald (wie hier der Fall) systemd-networkd verwendet wird.

Nix channel updaten

System neu bauen

Aktionen #1

Von SoerenBoxberger vor 4 Monaten aktualisiert

Aktionen #2

Von SoerenBoxberger vor 4 Monaten aktualisiert

Zum Testen des Upgrades wurde ein neuer Container erstellt: https://10.1.0.31:8006/#v1:0:=lxc%2F123:4:::::::

Darin soll dann die aktuelle Config mit der stateVersion 23.11 auf dem Channel 23.11 gebaut und ein Datenbank-Dump der produktiven Instanz eingespielt werden.

Wenn das funktioniert, wird die Prozedur noch einmal (dann produktiv) neu durchgeführt.

Aktionen #3

Von SoerenBoxberger vor 4 Monaten aktualisiert

Aktionen #4

Von SoerenBoxberger vor 4 Monaten aktualisiert

Das Vorgehen bisher ist wie folgt:

  1. Mit
    sudo -u netbox pg_dump --insert netbox > netbox-$(date +%Y-%m-%d).psql
    einen DB-Dump im produktiv container erzeugen
  2. Auf dem Host mit
    mkdir -p temp/etc/nixos
    pct pull 113 /etc/nixos/configuration.nix temp/etc/nixos/configuration.nix
    pct pull 113 /etc/nixos/old-configuration.nix temp/etc/nixos/old-configuration.nix
    pct pull 113 /var/lib/netbox/secretFile temp/secretFile
    pct pull 113 /root/netbox-2024-01-10.psql temp/netbox-2024-01-10.psql
    
  3. Den neuen Container erstellen
  4. Auf dem Host mit
    pct push 123 temp/netbox-2024-01-10.psql /root/netbox-2024-01-10.psql
    pct push 123 temp/etc/nixos/configuration.nix /etc/nixos/configuration.nix
    pct push 123 temp/etc/nixos/configuration.nix /etc/nixos/old-configuration.nix
    pct push 123 temp/etc/nixos/old-configuration.nix /etc/nixos/old-old-configuration.nix
    
    die Konfigurationen und den DB-Dump in den neuen Container legen.
  5. Im neuen Container die StateVersion auf `23.11` setzen
  6. Beim defaultGateway muss in der neuen stateVersion auf das Interface gesetzt werden,sonst kommt die Fehlermeldung "networking.defaultGateway.interface is not optional when using networkd" beim Bauen
  7. Ein Diff sollte so aussehen:
    diff old-configuration.nix configuration.nix 
    12c12
    <   system.stateVersion = "23.05";
    ---
    >   system.stateVersion = "23.11";
    45c46,49
    <   networking.defaultGateway = "10.1.0.1";
    ---
    >   networking.defaultGateway = {
    >     address = "10.1.0.1";
    >     interface = "eth0";
    >   };
    
  8. Im test container:
    nix-channel --add https://nixos.org/channels/nixos-23.11 nixos
    nix-channel --update
    nixos-rebuild switch
    
  9. Auf dem Host mit
    pct push 123 temp/secretFile /var/lib/netbox/secretFile
    
    in den neuen Container legen (erst jetzt existiert der Pfad)
  10. Im test container:
    systemctl stop netbox-housekeeping.timer netbox-housekeeping netbox netbox-rq
    
    sudo -u postgres psql
    drop database netbox;
    create database netbox;
    alter database netbox owner to netbox;
    \q
    
    sudo -u netbox psql netbox < netbox-2024-01-10.psql
    netbox-manage migrate
    systemctl start netbox netbox-rq netbox-housekeeping netbox-housekeeping.timer
    

Dann läuft NetBox in Version 3.6.6 mit PostgreSQL 15.5 auf Nix-Channel 23.11

Aktionen #5

Von SoerenBoxberger vor 4 Monaten aktualisiert

Aktionen #6

Von SoerenBoxberger vor 4 Monaten aktualisiert

Für das Bauen sind mindestens 9 GB RAM nötig.
Als ich versucht habe die Prozedur zu wiederholen, schlug das Bauen wegen eines Timeouts in irgendwelchen Tests fehl. Der einzige Unterschied zwischen dem Test und dem jetzigen Versuch ist der Storage: den Test habe ich auf local-zfs gemacht, die neue Instanz wollte ich wieder auf den ceph Storage legen.

Ich habe jetzt den Storage des Containers auf local-zfs migriert und dort erfolgreich neu gebaut.
Nachdem ich die verbleibenden Schritte durchgeführt habe, habe ich den Storage wieder auf Ceph migriert.

Im alten Container gab es ein Interface namens monitoring, das jemand (wahrscheinlich war ich mit beteiligt) mal hinzugefügt, aber nicht konfiguriert hat.
Deshalb habe ich es bei dem neuen Container weggelassen

Aktionen #7

Von SoerenBoxberger vor 4 Monaten aktualisiert

  • Status wurde von Neu zu Feedback geändert

Container-ID ist 117

Aktionen

Auch abrufbar als: Atom PDF