75 lines
3.3 KiB
Markdown
75 lines
3.3 KiB
Markdown
# NetBox VMware Importer
|
|
|
|
NetBox plugin zum Synchronisieren von VMware vSphere/vCenter VMs nach NetBox.
|
|
|
|
## Kompatibilitaet
|
|
|
|
Version `0.3.1` ist fuer NetBox `4.6.5` bis `4.6.8` freigegeben.
|
|
|
|
## Funktionen
|
|
|
|
- vCenter/ESXi-Ziele direkt in der NetBox-Weboberflaeche pflegen
|
|
- Pro Ziel Tenant, Site und NetBox-Cluster hinterlegen
|
|
- Manuelle Synchronisation per Button
|
|
- Optionale automatische Synchronisation ueber ein Minutenintervall
|
|
- Import von VM-Name, Status, vCPU, RAM, Disk, Plattform, Interfaces, MAC-Adressen und IPs
|
|
- MAC-Adressen werden als NetBox MAC Address Objekte am VM-Interface angelegt und als primaere MAC gesetzt
|
|
- Virtuelle Festplatten werden als NetBox Virtual Disks mit Groesse und Backing-Info dokumentiert
|
|
- Primaere IPv4/IPv6 wird anhand der ersten gefundenen Gast-IP gesetzt
|
|
- Multi-Tenant-sicherer VM-Abgleich ueber `name + cluster`
|
|
|
|
Das Plugin loescht bewusst keine verwaisten VMs, Interfaces oder IP-Adressen. Damit bleibt der erste Rollout konservativ und vermeidet Datenverlust, wenn VMware-Gastdaten unvollstaendig sind.
|
|
|
|
## Installation
|
|
|
|
Im Python-Environment der NetBox-Installation:
|
|
|
|
```bash
|
|
pip install git+https://git.mrblake.cc/MrBlake/NetBox-VM-Import.git
|
|
```
|
|
|
|
NetBox selbst ist keine `pip`-Dependency des Plugins. Das Plugin wird im vorhandenen NetBox-Virtualenv installiert und bringt nur externe Bibliotheken wie `pyvmomi` und `cryptography` mit.
|
|
|
|
In `configuration.py` aktivieren:
|
|
|
|
```python
|
|
PLUGINS = [
|
|
"netbox_vmware_importer",
|
|
]
|
|
```
|
|
|
|
Danach Migrationen anwenden und NetBox/RQ neu starten:
|
|
|
|
```bash
|
|
python manage.py migrate netbox_vmware_importer
|
|
sudo systemctl restart netbox netbox-rq
|
|
```
|
|
|
|
## Upgrade-Hinweis
|
|
|
|
Version `0.3.1` behebt instabile Django-Migration-Dependencies aus frueheren Releases. Wenn `python manage.py migrate` mit `InconsistentMigrationHistory` fuer `netbox_vmware_importer.0001_initial` fehlschlaegt, zuerst das Plugin auf `0.3.1` aktualisieren und danach `python manage.py migrate --plan` sowie `python manage.py migrate` normal ausfuehren. Manuelle Aenderungen an `django_migrations` oder `--fake` sollten nicht notwendig sein.
|
|
|
|
## Nutzung
|
|
|
|
1. In NetBox unter `VMware Import > Endpoints` ein Ziel anlegen.
|
|
2. vCenter/ESXi Host, Port, Benutzername und Passwort eintragen.
|
|
3. Tenant, Site und Cluster fuer den Kunden auswaehlen.
|
|
4. Optional Regex-Filter und Sync-Intervall setzen.
|
|
5. Auf der Detailseite `Sync jetzt starten` ausfuehren.
|
|
|
|
Wenn `Sync interval minutes` gesetzt ist, prueft ein Systemjob alle fuenf Minuten, welche VMware-Endpoints faellig sind, und stellt die eigentlichen Sync-Jobs in die Queue.
|
|
|
|
## Legacy-Proxmox-Endpoints
|
|
|
|
Proxmox-Unterstuetzung wurde entfernt. Alte Proxmox-Endpoints aus frueheren Plugin-Versionen bleiben in der Liste und Detailansicht sichtbar, damit sie geloescht werden koennen. Sie koennen nicht mehr bearbeitet, neu angelegt oder synchronisiert werden.
|
|
|
|
## Sicherheit
|
|
|
|
Das Endpoint-Passwort wird verschluesselt in der Plugin-Tabelle gespeichert. Der Schluessel wird aus `SECRET_KEY` abgeleitet. Wenn `SECRET_KEY` rotiert wird, muessen die Secrets in den Endpoints erneut gesetzt werden.
|
|
|
|
Fuer sehr strenge Umgebungen ist ein externer Secret-Store wie Vault als naechster sinnvoller Ausbaupunkt vorgesehen.
|
|
|
|
## Datenqualitaet
|
|
|
|
IP-Adressen kommen aus den VMware Guest Tools. Ohne laufende bzw. aktuelle Guest Tools koennen Interfaces und IPs fehlen oder veraltet sein.
|