60 lines
2.6 KiB
Markdown
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
|
|
``` |