Fix agent plugin configuration handling
This commit is contained in:
@@ -227,14 +227,34 @@ Der normale Ablauf ist:
|
||||
|
||||
Die Detailseite wird aus der gespeicherten README erzeugt. Relative Links und Bilder werden auf den synchronisierten Commit aufgelöst; HTML wird vor der Ausgabe bereinigt. Verändert sich ein Artifact oder ein installrelevantes Metadatum, muss das Release erneut geprüft werden.
|
||||
|
||||
## NetBox-Plugin installieren
|
||||
## NetBox-Host installieren
|
||||
|
||||
Der empfohlene Weg ist der interaktive Root-Installer. Er installiert das NetBox-Plugin und den separaten Host-Agent, erkennt Dienstkonto sowie NetBox-Version, richtet Requirements und systemd ein und verwaltet einen klar markierten Block in `configuration.py`.
|
||||
|
||||
```text
|
||||
curl -fsSLo /tmp/netbox-store-install.sh \
|
||||
https://git.mrblake.cc/MrBlake/Netbox-Store/raw/branch/main/install.sh
|
||||
less /tmp/netbox-store-install.sh
|
||||
sudo bash /tmp/netbox-store-install.sh
|
||||
```
|
||||
|
||||
Das Script bietet zwei Modi:
|
||||
|
||||
- **Sicherer Testmodus:** Lifecycle-Aufträge bleiben Dry-Runs und verändern keine Plugins.
|
||||
- **Produktionsmodus:** Echte Änderungen laufen ausschließlich über den Host-Agent. Zusätzlich zur Zusammenfassung muss der Betreiber exakt `ECHT INSTALLIEREN` bestätigen.
|
||||
|
||||
Alle während eines Laufs geladenen Komponenten werden auf denselben angezeigten Commit gepinnt. Vorhandene Dateien werden unter `/var/backups/netbox-plugin-store/<Zeitstempel>/` gesichert. Das Script kann für Updates erneut ausgeführt werden: Es ersetzt nur seinen markierten Konfigurationsblock und seine eigenen Requirement-Einträge.
|
||||
|
||||
Nach der Einrichtung prüft der Installer den Agent-Socket als NetBox-Dienstkonto. Eine echte Plugin-Installation muss im Audit `Dry-Run: Nein` zeigen. Neu installierte Plugins bleiben zunächst deaktiviert und werden anschließend über eine separate Aktion aktiviert.
|
||||
|
||||
### Manuelle Plugin-Installation
|
||||
|
||||
Das Plugin unter `netbox_plugin/` ist auf NetBox 4.6.5–4.6.8 begrenzt. Zuerst wird ein Wheel gebaut und in die NetBox-Virtualenv installiert:
|
||||
|
||||
```text
|
||||
cd netbox_plugin
|
||||
python -m build
|
||||
/opt/netbox/venv/bin/pip install dist/netbox_plugin_store-0.1.2-py3-none-any.whl
|
||||
/opt/netbox/venv/bin/pip install dist/netbox_plugin_store-0.1.3-py3-none-any.whl
|
||||
```
|
||||
|
||||
Das Paket muss außerdem in `/opt/netbox/local_requirements.txt` festgehalten werden. In `configuration.py` wird es zunächst sicher im Dry-run-Modus eingerichtet:
|
||||
@@ -259,7 +279,7 @@ PLUGINS_CONFIG = {
|
||||
|
||||
Danach wird der übliche NetBox-Upgrade-Ablauf mit Migration, `collectstatic` und Neustart von Web- und RQ-Dienst ausgeführt. Details und alle Einstellungen stehen in [`netbox_plugin/README.md`](netbox_plugin/README.md).
|
||||
|
||||
## Produktion: Host-Agent
|
||||
### Manuelle Produktionseinrichtung: Host-Agent
|
||||
|
||||
Für echte Installationen ist `execution_mode = "agent"` die vorgesehene Trennung: Der NetBox-Webprozess bleibt unprivilegiert und sendet einen kleinen Auftrag über den Unix-Socket `/run/netbox-store-agent/agent.sock`. Der Agent ruft Plugin und Release erneut aus dem Store ab, vergleicht die Freigabemarkierung und prüft Wheel, Dateigröße und SHA-256 vor jeder Änderung.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user