Install
openclaw skills install @eddygk/netbox-sync-opsInfrastructure inventory automation and utility/integration operations for netbox-proxmox-sync, an idempotent state sync that models Proxmox VE and UniFi into NetBox DCIM/IPAM. Use when deploying it, running it on a schedule, adding a sync phase, tuning the VM removal lifecycle (reaper), enabling iDRAC/Redfish node enrichment, debugging churn, or resolving HTTP 400s and idempotency problems against the NetBox API. Encodes the safe operating procedure and the NetBox/UniFi API gotchas so changes stay idempotent and never destructively touch production systems. Source and full docs live at https://github.com/eddygk/netbox-proxmox-sync.
openclaw skills install @eddygk/netbox-sync-opsOperate and safely extend netbox-proxmox-sync (https://github.com/eddygk/netbox-proxmox-sync) —
a cron-driven, idempotent sync that builds a rich NetBox inventory from Proxmox VE
and UniFi. This skill is the operator runbook; the repo has install/config/README.
pct stop/destroy,
no Proxmox writes.unchanged. Churn means a comparison bug — see references/gotchas.md..env from .env.example (NetBox + Proxmox required; UniFi + iDRAC
optional). Optionally point PREFIXES_FILE at your VLAN/subnet map.python3 sync_v2.py --dry-run --report writes nothing and logs
field-level before→after.python3 sync_v2.py. Then run it again; confirm all-unchanged.python3 fetch_unifi_and_populate.py (fetch + populate).cron.example); offset the UniFi job after the
Proxmox job so MAC correlation matches against freshly-created interfaces.Use this sequence before the first production run, after reconfiguring ownership rules, or before enabling cron:
python3 sync_v2.py --dry-run --report --only-vmid <id> --no-reap.unchanged.--report --no-reap; review any create/update/delete
intent before allowing a full apply.proxmox_vmid no longer exists in Proxmox; schedule with --no-reap
until that behavior is intentional for the environment.--dry-run (no writes) · --report (field-level diffs) · --phases 0,1,2,…
(subset) · --only-vmid N (one guest) · --idrac (live Redfish node enrichment) ·
--no-reap (disable removal lifecycle).
python3 -m py_compile sync_v2.py populate_network.py
python3 sync_v2.py --dry-run --report --only-vmid <id> # preview one guest
python3 sync_v2.py # apply
python3 sync_v2.py # MUST be all-unchanged (idempotency gate)
A full run scales with guest count; for large fleets run it in the background rather than blocking on a short timeout.