Files
2026-09-17 12:08:22 +02:00

60 lines
2.6 KiB
Markdown

# 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-<Version>` 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
```