NetBox Import & Sortierung - Walkthrough

Wir haben ein Klassifizierungsskript und die dreistufige Ansible/NetBox-Importstruktur für das Rechenzentrum (RZ) eingerichtet. Die Daten werden nun logisch getrennt und in der richtigen Reihenfolge verarbeitet.

Erstellte Dateien & Struktur

Alle Dateien liegen im Verzeichnis tests/ansible_batch_bash:

  1. Sortierskript:
  2. classify_nodes.py: Analysiert die *_v4.json consolidated payloads und sortiert sie in Unterordner:
    • 1_pve_cluster/ für Proxmox-Hosts.
    • 2_vms/ für Virtual Machines.
    • 3_bare_metal/ für sonstige physische Server.
  3. Pass 1 - PVE Nodes & Cluster:
  4. netbox_import_pve.yml: Liest die JSONs aus 1_pve_cluster/.
  5. tasks_import_pve.yml & tasks_import_pve_interface.yml: Stellen sicher, dass Manufacturer, Device Type, Device Role (Hypervisor), Cluster Type (Proxmox VE), Cluster, Devices sowie Interfaces und IP-Adressen (inklusive Zuordnung der primary_ip4 via NetBox ID) vorhanden sind.
  6. Pass 2 - Virtual Machines (mit Bereinigung):
  7. netbox_import_vms.yml: Liest die JSONs aus 2_vms/.
  8. tasks_import_vm.yml & tasks_import_vm_interface.yml:
    • Bereinigung: Löschen ein evtl. fälschlicherweise existierendes physisches Device mit demselben Namen via state: absent vor dem VM-Import.
    • Legen die VM an, weisen sie dem PVE-Cluster zu und legen virtuelle Interfaces, MACs und IPs an.
  9. Pass 3 - Bare-Metal:
  10. netbox_import_bare_metal.yml: Liest die JSONs aus 3_bare_metal/.
  11. tasks_import_bare_metal.yml & tasks_import_bare_metal_interface.yml: Löschen eine evtl. fälschlicherweise als VM existierende Instanz und importieren das physische Bare-Metal-Device.

Ausführung & Migration im RZ

Du kannst die Migration in folgenden Schritten ausführen:

Schritt 1: Lokale JSONs sortieren

Dieses Skript liest die JSON-Dateien ein und kopiert sie in die jeweiligen Ordner.

cd /Users/bmt/Ansible-Crumbforest/tests/ansible_batch_bash
python3 classify_nodes.py

(Wurde bereits erfolgreich ausgeführt und hat pve1 und vm1 sortiert.)

Schritt 2: PVE Nodes & Cluster importieren (Pass 1)

Erstellt die Proxmox-Cluster und die physischen Hypervisor-Knoten in NetBox.

ansible-playbook netbox_import_pve.yml -e "netbox_url=https://inv.test.net"

(Standardmäßig wird die URL https://inv.test.net und das Token aus credentials/netbox_api_token geladen. Du kannst diese Parameter beliebig via -e überschreiben).

Schritt 3: VMs importieren (Pass 2)

Entfernt ggf. fälschlicherweise angelegte physische Devices mit dem Namen der VMs und legt diese sauber unter dem entsprechenden Cluster als VM in NetBox an.

ansible-playbook netbox_import_vms.yml -e "netbox_url=https://inv.test.net"

Schritt 4: Bare-Metal Server importieren (Pass 3)

Importiert alle verbleibenden Server als physische Devices der Rolle Server.

ansible-playbook netbox_import_bare_metal.yml -e "netbox_url=https://inv.test.net"