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:
- Sortierskript:
- classify_nodes.py: Analysiert die
*_v4.jsonconsolidated 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.
- Pass 1 - PVE Nodes & Cluster:
- netbox_import_pve.yml: Liest die JSONs aus
1_pve_cluster/. - 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 derprimary_ip4via NetBox ID) vorhanden sind. - Pass 2 - Virtual Machines (mit Bereinigung):
- netbox_import_vms.yml: Liest die JSONs aus
2_vms/. - tasks_import_vm.yml & tasks_import_vm_interface.yml:
- Bereinigung: Löschen ein evtl. fälschlicherweise existierendes physisches Device mit demselben Namen via
state: absentvor dem VM-Import. - Legen die VM an, weisen sie dem PVE-Cluster zu und legen virtuelle Interfaces, MACs und IPs an.
- Bereinigung: Löschen ein evtl. fälschlicherweise existierendes physisches Device mit demselben Namen via
- Pass 3 - Bare-Metal:
- netbox_import_bare_metal.yml: Liest die JSONs aus
3_bare_metal/. - 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"