# NetBox Updater Automatisiertes Upgrade-Skript für selbst gehostete NetBox-Installationen unter `/opt/netbox`. Erledigt automatisch: - Download & Entpacken der neuen NetBox-Version - Übernahme von `configuration.py`, `ldap_config.py`, `media/`, `scripts/`, `reports/`, `gunicorn.py` - Übernahme/Erstellung der `local_requirements.txt` (Plugins), inkl. automatischem `django-auth-ldap`-Eintrag bei erkannter LDAP-Konfig - Verzeichnistausch (`netbox` → `netbox_old`, neue Version → `netbox`) - Ausführung von `upgrade.sh` ## Ausführung per Oneliner Direkt von Gitea herunterladen und ausführen (Version als Parameter, ohne führendes `v`): ```bash curl -fsSL https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh | sudo bash -s -- 4.1.5 ``` Alternativ mit `wget`: ```bash wget -qO- https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh | sudo bash -s -- 4.1.5 ``` `4.1.5` durch die gewünschte Zielversion ersetzen (siehe [NetBox Releases](https://github.com/netbox-community/netbox/releases)). ## Voraussetzungen - Root-Rechte (`sudo`) - Bestehende Installation unter `/opt/netbox` - `wget`, `tar`, `curl` installiert - Kein `/opt/netbox_old` und kein `/opt/netbox-` vorhanden (Skript bricht sonst ab, um nichts zu überschreiben) ## Ablauf im Detail 1. **Download**: Lädt `vX.Y.Z.tar.gz` von GitHub und entpackt es nach `/opt/netbox-X.Y.Z`. 2. **Kopieren**: Überträgt Konfiguration, Medien, Skripte, Reports und ggf. `gunicorn.py` aus der bestehenden Installation. 3. **Plugins**: Kopiert `local_requirements.txt` aus `/opt/netbox`. Existiert keine, wird eine Standardliste angelegt (in der Skriptdatei editierbar). Bei vorhandener `ldap_config.py` wird `django-auth-ldap` automatisch ergänzt. 4. **Pause zur Prüfung**: Das Skript hält an und bittet dich, `CSRF_TRUSTED_ORIGINS` in der neuen `configuration.py` zu kontrollieren, bevor es weitermacht (Enter zum Fortfahren, Strg+C zum Abbrechen). 5. **Verzeichnistausch**: `/opt/netbox` → `/opt/netbox_old`, `/opt/netbox-X.Y.Z` → `/opt/netbox`. 6. **Upgrade**: Führt `/opt/netbox/upgrade.sh` aus. 7. **Aufräumen**: Löscht den heruntergeladenen Tarball. ## Nach dem Upgrade - NetBox testen (Login, Plugins, LDAP falls genutzt). - Bei Problemen: Rollback möglich, da die alte Installation unter `/opt/netbox_old` erhalten bleibt. - Nach erfolgreicher Prüfung kann `/opt/netbox_old` gelöscht werden: ```bash sudo rm -rf /opt/netbox_old ``` ## Lokale Ausführung (ohne Oneliner) ```bash wget https://git.mrblake.cc/MrBlake/NetBox-Updater/raw/branch/main/upgrade.sh chmod +x upgrade.sh sudo ./upgrade.sh 4.1.5 ```