When the spreadsheet stops being trustworthy

The new branch needs a subnet by tomorrow. Excel shows a free /24, a Cisco switch still carries an undocumented VLAN, and Zabbix already sees an address inside that supposedly unused range. Before touching the MikroTik VPN, someone has to establish which record is authoritative. Creating the VLAN is straightforward; knowing whether the change is safe is the difficult part.

Use a hypothetical company with five branches, 40 physical and virtual servers in total, 60 Cisco switches, 15 MikroTik routers and 10 ESXi hosts. Several VLANs, WAN/VPN links, Zabbix and Ansible complete the picture. These are design scenarios, not claims about a client deployment or a measured benchmark.

A duplicate address in isolated VRFs can be intentional; the same duplication in one routing domain can cause an IP conflict. A stale serial number misleads replacement planning. Missing cable records turn a failed uplink into a rack-by-rack search. An unrecorded emergency CLI change creates configuration drift: actual state no longer matches the approved design.

A central model exposes inconsistencies and supplies stable automation inputs. It does not stop an engineer assigning an address outside the process, repair a failed link or decide whether an emergency change should become policy. Selecting the software must include assigning data owners, defining a change path and agreeing reconciliation rules.

Review baseline and evidence boundaries

The documentation baseline checked on 6 November 2026 is NetBox Community 4.7.4 and Nautobot open source 3.2.8. NetBox Labs products and Network to Code commercial editions are identified separately. Device42 is a commercial appliance; its documentation index lists 19.09.00, but that release page returned 403. Device42 statements below use accessible current feature documentation, not a verified 19.09.00 installation or guaranteed bundle entitlement.

No comparative product installation or performance test was performed. Staffing, deployment and economic recommendations are engineering judgments under stated assumptions. Pin App versions against compatibility matrices: an App feature is not automatically a core feature or compatible with every release.

NetBox 4.7 release notes

Nautobot 3.2 release notes

Device42 release index

Seven terms that lead to different architectures

DCIM, Data Center Infrastructure Management, models physical placement: a rack position, a cable path or a circuit termination. IPAM, IP Address Management, models address space, allocations and routing contexts. A spreadsheet can record either; preserving their relationships consistently is harder.

A CMDB, Configuration Management Database, relates configuration items to services: payroll depends on a VM, an operating system and a database. IT Asset Management follows purchase, ownership, warranty and retirement. One switch can be an asset, a configuration item and a DCIM device; those views answer different questions.

Discovery collects observations through SNMP, SSH or hypervisor APIs. An Infrastructure Source of Truth stores authoritative decisions: approved prefixes, roles and intended VLAN membership. Network automation consumes those decisions, renders a plan and executes it through a runner. Discovering a VLAN establishes that it exists, not that it is authorised.

NetBox starts with a detailed infrastructure model. Nautobot combines a network model with an extensible automation platform. Device42 prioritises discovery and related inventory/CMDB records. Comparing only their inventory screens hides the decision that matters.

NetBox: organise the design before automating it

NetBox natively models IPv4/IPv6 prefixes and addresses, VLANs, VRFs, sites, racks, devices, interfaces and cables. Circuit records associate providers with terminations. Virtualisation objects describe clusters, VMs and interfaces. Recording a VM is a model capability, not proof of live vCenter synchronisation.

The value appears when Ansible requests active access switches at one site and receives management addresses, roles and context through REST or an inventory integration. Native configuration rendering combines templates with context; deployment belongs to an external executor or custom integration. GraphQL is also native. Claiming that only Nautobot offers it would be wrong.

Core NetBox is not a full discovery engine, a network monitor or a ready-made multi-vendor configuration deployment service. NetBox Labs offers separate Discovery and Assurance products; assess licensing and ingestion separately. Plugins/scripts can add collectors, but their maintenance becomes part of your platform.

Assign ownership at field level. The network team owns prefixes and roles; the virtualisation team supplies VM identity. An import job proposes observed serial changes without overwriting approved roles. Define stale-data deadlines and review exceptions, otherwise the source of truth becomes a better-looking spreadsheet.

NetBox authoritative data feeds Ansible, monitoring inventory and downstream integrations
NetBox authoritative data feeds Ansible, monitoring inventory and downstream integrations. Open the diagram for full-size detail.

NetBox scope and desired-state philosophy

NetBox native configuration rendering

NetBox native GraphQL

NetBox Labs Discovery: separate product

Nautobot: make the workflow a maintained product

Nautobot began as a fork of NetBox 2.10.4 and developed its own model and lifecycle. It is not a skin over an existing NetBox database. Native REST, GraphQL, Jobs and Git data sources supply extension points. Jobs run Python logic through workers; useful workflows still need code, permissions, credentials and failure handling.

Golden Configuration is a separately installed open-source App. Documented workflows include intended configuration generation, backup, comparison, remediation and deployment. Nornir-based paths exist; Ansible is an integration choice, not a mandatory dependency for every workflow. Device Onboarding is another App with a platform matrix, not universal zero-touch discovery.

Current documentation separates Professional, Enterprise and managed Cloud from the open-source core. Supported discovery, packaged operations and additional commercial Apps require an edition check. Free Jobs and Golden Config do not imply every advertised commercial automation package is free.

For the reviewed Nautobot 3.2.8 baseline, the published matrices cover Golden Config 3.0.x and Device Onboarding 5.5.x. Device Onboarding release notes also list 5.6, while the compatibility table stops at 5.5; do not infer an unlisted combination. Device42 ADM requires Enterprise Application Discovery enabled in the license, plus the discovery job option and sampling configuration.

A VLAN change across 100 Cisco switches

Suppose VLAN 230 must reach 24 access switches out of 100. Select targets by location, role and lifecycle status. Validate VLAN scope, reserved IDs, uplink paths and exclusions. Render a per-device plan from versioned Jinja templates and retain both the template commit and input-data snapshot.

A native Job can orchestrate validation. A compatible Golden Config App supplies intended-state/compliance functions. An Ansible/AWX runner can execute vendor tasks through a custom Job-to-runner adapter passing an immutable plan ID. Native Job approval controls exist; the organisation must still define approvers, protected changes and maintenance windows. A technical approval is not an ITSM policy.

Recheck the snapshot, capture configuration, verify management reachability and start with one canary. Compare VLAN/trunk state afterwards and continue in small batches with stop conditions. IOS/IOS XE behaviour and module support need testing on the actual release. Ansible check mode alone cannot prove a trunk change is safe.

Rollback needs a tested inverse change or platform-specific restore procedure, out-of-band access and explicit abort rules. Database transactions cannot undo CLI commands already accepted by switches. RouterOS execution needs tested collections/API adapters; the reviewed onboarding matrix does not establish equivalent MikroTik support.

Nautobot Jobs coordinate approved plans and an external Ansible runner for Cisco and MikroTik
Nautobot Jobs coordinate approved plans and an external Ansible runner for Cisco and MikroTik. Open the diagram for full-size detail.

Nautobot stack and fork history

Native Nautobot Jobs

Git sources and code execution trust

Golden Configuration App

Golden Config compatibility

Device Onboarding support matrix

Nautobot editions

Device42: establish what is actually there

Consider another hypothetical estate: 200 VMs, 20 physical servers, several ESXi hosts, Cisco networking and mixed Windows/Linux servers. Inventory is incomplete. Recreating it manually may cost more engineering time than a discovery subscription. Device42 deserves a pilot here because observations and relationships are the initial bottleneck.

Start with explicit vCenter endpoints and a dedicated account allowed to view the required host/VM inventory. The documented default is HTTPS port 443; each vCenter must be added separately. Hypervisor discovery supplies host/VM inventory relationships. Guest software and process dependencies require corresponding OS-level discovery and sufficient permissions.

Supported network devices expose identity, interfaces, VLANs and address/port associations through SNMP. Neighbour information depends on exposed CDP/LLDP data and credentials. Prefer read-only SNMPv3 with ACLs. A discovered MAC is not a guaranteed cable map: hypervisors, phones, trunks and stale tables complicate interpretation.

Linux/UNIX discovery uses SSH, including keys; selected data requires scoped sudo commands. Windows has documented WinRM and WMI paths with platform-specific permissions. Do not assume unrestricted domain administration is required by default. Test documented permissions on a representative host, record unavailable fields and expand access only for an approved requirement.

Dependency mapping uses observed service/communication evidence. It helps assess migration and incident impact, but a nightly batch absent during the observation window can be missed. Business ownership, criticality and approved retirement dates still need validation. Hardware lifecycle and warranty records support asset management; discovery cannot infer procurement decisions or guarantee every contract detail.

Agentless does not mean credentialless. Pilot one range, place collectors according to segmentation, schedule concurrency and exclude fragile devices. Test account lockout and certificate validation; protect process/software data and audit credential use. Device42 also supports agent-based methods. Its IPAM/DCIM views are useful, but discovered occupancy is not an approved address allocation.

Device42 collectors observe VMware, physical servers and network devices, then reconcile records into a CMDB
Device42 collectors observe VMware, physical servers and network devices, then reconcile records into a CMDB. Open the diagram for full-size detail.

VM discovery: scope and credentials

SNMP discovery: fields and constraints

Linux SSH discovery and privileges

Discovery access, scope and operational requirements

Device42 discovery methods

Windows WinRM/WMI discovery

Application dependency mapping

ADM requires Enterprise Application Discovery entitlement

Feature comparison without misleading checkmarks

Native means reviewed core capability; Plugin-Based means an installed extension; Integration-Based means an external system or custom adapter. Commercial denotes a paid product/entitlement. Not Available is scoped to the named core function; Not Verified means the evidence does not establish support. Combined labels are intentional. These paths do not imply equal effort or maturity.

Feature NetBox Community 4.7.4 Nautobot OSS 3.2.8 Device42: current appliance docs
Licensing Native: Apache-2.0 core; Commercial services separate Native: Apache-2.0 core; Commercial editions separate Commercial: annual device-based subscription
IPAM Native: IPv4/IPv6, prefixes, VRFs Native: IPAM; migration semantics differ Commercial / Native: IPAM
DCIM Native: racks, devices, cables, circuits Native: racks, devices, connectivity Commercial / Native: DCIM
CMDB Integration-Based: service CMDB; core network model Integration-Based / Plugin-Based: service CMDB Commercial / Native: CMDB relationships
Automatic Discovery Not Available in core; Integration-Based / Commercial collectors Plugin-Based: Onboarding; Commercial discovery packages Commercial / Native: scheduled discovery
Network Automation Native rendering/scripts; Integration-Based deployment Native Jobs; Plugin-Based Golden Config; Integration-Based runners Integration-Based: API to external automation
Configuration Compliance Plugin-Based / Integration-Based; no turnkey core engine Plugin-Based: Golden Config; data validation is distinct Not Verified: equivalent intended-config engine
VMware Integration Native VM model; Integration-Based vCenter sync Native VM model; Integration-Based / App-specific sync Commercial / Native: hypervisor discovery
Cisco Integration Native inventory; Integration-Based execution Plugin-Based onboarding per OS; Integration-Based execution Commercial / Native: supported SNMP/UCS/ACI paths
MikroTik Integration Native inventory; Integration-Based RouterOS execution Integration-Based execution; onboarding parity Not Verified Not Verified: model-specific discovery parity
Ansible Integration Integration-Based: inventory/API collections Integration-Based: collections and Job-to-runner adapter Integration-Based API adapter; official collection Not Verified
REST API Native Native Commercial / Native
GraphQL Native Native Not Verified: supported public GraphQL
Git Integration Native synchronized data; Integration-Based CI Native data/Jobs sources; Integration-Based CI Integration-Based export/API; Native sync Not Verified
High Availability Integration-Based: redundant app, DB/Redis design Integration-Based: documented distributed HA design Commercial / Native: warm backup/restore standby
Multi-Site Management Native sites/locations Native hierarchical locations Commercial / Native: locations and collectors
Scalability Integration-Based: DB/workers/query tuning; benchmark locally Integration-Based: DB/Celery/job tuning; benchmark locally Commercial: appliance/collector sizing; benchmark locally
RBAC Native object permissions Native object permissions and Job controls Commercial / Native role controls
Backup & Restore Native DB tools + Integration-Based recovery runbook Native DB tools + Integration-Based recovery runbook Commercial / Native appliance manager
Maintenance Complexity Integration-Based operations: Python, PostgreSQL, Redis, plugins Integration-Based operations: Python, DB, Redis/Celery, Apps/Jobs Commercial appliance operations, collectors and credentials
Total Cost of Ownership No core fee; engineering time; Commercial support optional No core fee; workflow ownership; Commercial editions optional Commercial subscription plus operations and integration

The classification labels remain in English for procurement matching; row explanations are localised. A Not Verified entry does not mean an integration is impossible. Ask for a demonstration against your exact hardware, RouterOS version and required fields. Device42 feature availability also needs confirmation in the quoted bundle.

NetBox synchronized data sources

Device42 REST API and role enforcement

The work that starts after installation

Installation and database responsibility

For a VMware team, a Device42 appliance may be the shortest route to a working UI. Credentials, firewall paths and reconciliation still dominate time to useful data. NetBox needs Python/Django, PostgreSQL, Redis and workers. Nautobot supports PostgreSQL or MySQL with Redis/Celery. Current stack docs list PostgreSQL 15+ for NetBox, and PostgreSQL 14+ or MySQL 8.0.11+ for Nautobot. Verify pinned-release requirements instead of reusing an old installation guide.

Device42 manages its internal database within the appliance lifecycle; its internal engine/version was not verified here. Do not assume direct database editing or self-managed database administration is supported. Obtain supported sizing and recovery procedures for the evaluated build.

Upgrades are compatibility projects

A lightly extended NetBox has fewer compatibility surfaces than a platform with many custom Jobs and Apps. This is an architectural judgment, not a measured installation race. Stage upgrades with pinned dependencies, schema migrations and plugin checks. Nautobot also needs Job imports, queues, App models and dispatchers tested: a working web UI does not prove workers can execute automation.

Device42 uses vendor update packages and appliance procedures. Check Main Appliance/Remote Collector compatibility and back up first. Packaging reduces installation work but does not eliminate maintenance windows. After schema changes, rollback across all three generally requires matching pre-upgrade data and files, not merely an older container image.

Backup, restore and availability

For NetBox/Nautobot retain consistent database dumps, uploaded media, configuration, secret keys, custom code and dependency locks. Restore in isolation with matching versions; test relationships, counts, permissions and representative API queries. Redis is not the authoritative inventory backup. Restoring queues blindly may replay stale work.

Device42 Appliance Manager provides scheduled/on-demand backup and restore. Restore documentation requires identical source and destination versions. Its warm HA periodically restores backups into a standby appliance, so recovery has backup-age exposure and takeover time. It is not synchronous active-active HA or a zero-data-loss promise.

Redundant web processes alone are insufficient. NetBox/Nautobot HA also requires database failover, Redis/task design, shared media, load balancing and prevention of duplicate scheduled writes. Measure API latency, database growth, queue delay, scan duration and recovery time with real workloads. Device count alone is not a product scaling limit.

NetBox upgrade workflow

NetBox data/configuration/media recovery

Nautobot database and worker requirements

Nautobot HA design

Device42 updates

Device42 version-matched restore

Device42 warm HA

The inventory platform is a privileged system

Separate inventory readers, data editors, Job operators and platform administrators. NetBox/Nautobot provide object permissions; test site/team boundaries in both UI and API. Device42 REST enforces configured roles and documents Basic and Token authentication. Use TLS and scoped service identities; inventory access should not inherit an engineer’s unrestricted administrator role.

Store device credentials in a supported secrets backend or runner vault, not custom fields, Git templates or logs. Nautobot secret-provider abstractions require a configured provider; installing the application does not deploy a vault automatically. Restrict runner access, redact configuration backups and rotate secrets independently of inventory records.

Git sources supplying Jobs are executable code. Restrict repository definitions and protected branches; review dependencies and isolate workers. Native change logs help, but the full audit must join the ticket, approved plan, data snapshot, template commit, runner identity and post-check results. A database change log alone does not prove which commands reached a router.

NetBox object permissions

Nautobot secrets/providers

Device42 appliance administration and TLS

Five estates, five different starting points

A. One site, five servers, ten network devices, one engineer

A minimal NetBox is the first candidate if address allocation and cabling already cause mistakes. With stable records and rare changes, a controlled register may cost less than another service. Start with prefixes, management interfaces and ownership. Device42 is difficult to justify solely for 15 inventory entries unless audit obligations or expensive discovery gaps change the economics.

B. Five branches, 50 servers and 100 network devices

With VMware, Zabbix and existing Ansible playbooks, NetBox is a strong default when reliable inventory is missing. Keep the proven runner and supply authoritative targets. Choose Nautobot if the team can maintain Python Jobs and recurring shared workflows such as onboarding/compliance. Device42 earns a case when time spent finding unknown VMs and dependencies exceeds subscription and discovery operations costs.

C. Fifty branches, 500 servers, 1,000 network devices and multiple data centres

Separate infrastructure, network and DevOps teams need field ownership and change contracts before another dashboard. NetBox remains a credible network/DCIM authority at this scale; count alone is not a migration argument. Nautobot fits a platform team owning reusable Jobs, queues, tests and App upgrades. Device42 can supply discovery/service relationships alongside either through a deliberately governed reconciliation boundary.

Pilot branch RBAC, concurrent imports, long Jobs and recovery. Agree data/API contracts and an availability target for the source of truth itself. Cached approved plans and emergency procedures matter when the central model is unreachable during a network incident.

D. Years of undocumented legacy infrastructure

Begin with scoped discovery if hosts cannot even be enumerated. Device42 is a reasonable commercial pilot using vCenter, one server subnet and one network segment. Queue uncertain observations for reconciliation, define identity keys, resolve duplicates and verify owners. Promote approved fields into NetBox or Nautobot. Importing every observation as desired state legitimises existing drift.

E. Automation-first: GitLab, Ansible, Zabbix and Oxidized

Choose one authority for intended network data: NetBox if its model/integrations work, Nautobot if a maintained Jobs/App platform is needed. GitLab holds reviewed templates, playbooks and policy tests. Render from a pinned template commit plus a data snapshot, attach the diff to a merge request and require approval before a protected runner executes.

Ansible/AWX applies Cisco and RouterOS tasks with tested platform modules. VMware automation is a separate API path with its own permissions. Zabbix checks reachability and service health before/after changes. Oxidized independently polls supported network devices and commits retrieved configuration into restricted Git storage; verify model/transport support for the actual Cisco OS and RouterOS release.

Scheduled comparisons normalise volatile lines and compare observed Oxidized backups with approved rendered configuration. Golden Config is an optional compliance implementation. Timestamp drift records rather than importing drift as policy. Retain the last approved configuration and tested inverse/restore actions. Canary, batch limits, out-of-band access and explicit abort rules make rollback operational; a successful backup alone does not.

What the ownership bill actually contains

NetBox Community and Nautobot core use Apache-2.0 without a core software fee. Managed services, commercial editions and support are separate purchases. Device42 publishes annual device-based subscription licensing; no verified price for this estate was available. Obtain a quote defining counted devices, VMs, modules, collectors, HA, support and renewals instead of inventing per-node figures.

Estimate three years of subscription/support, compute/storage/backup, deployment/data cleansing, training, upgrade rehearsals, integration development and ongoing credential/data ownership. Use local labour rates and measured pilot hours. Open source can be cheaper with an existing platform team and more expensive when one engineer maintains custom importers after hours.

Measure time saved answering an operational question: which services fail if this switch is replaced? Count wrong records and manual reconciliation, not only collected objects. Iranian organisations should also verify contractual access to subscriptions, support and updates; a global pricing page does not establish a usable purchasing path.

Device42 annual subscription model

Decide around the work you need to remove

Keep NetBox when authoritative IPAM/DCIM is the main need and current Ansible/GitLab workflows are maintainable. More data centres increase the need for governance; they do not make NetBox obsolete. Moving a clean model to Nautobot solely for a feature already delivered by your runner replaces proven integration with migration risk.

Choose Nautobot when maintained Jobs and compatible Apps remove recurring work and a team owns them as a product. It is not universally a better NetBox. Choose Device42 when unknown infrastructure/service relationships are the bottleneck and measured value funds the cost. Its IPAM/DCIM capabilities do not automatically replace your NetBox schema, plugins and automation contracts.

Combining Device42 with one source of truth is sensible with explicit field authority. Match stable platform identities plus serial/instance UUID where appropriate; do not rely solely on mutable hostnames. Preserve observation timestamps, reject ambiguous matches and make writes idempotent. Two bidirectional truth systems without conflict rules create another reconciliation incident.

Choose authoritative modelling, maintained automation or discovery first; connect systems through reviewed reconciliation
Choose authoritative modelling, maintained automation or discovery first; connect systems through reviewed reconciliation. Open the diagram for full-size detail.
Estate / sites / devices Need / budget / technical team Recommendation / operational complexity
1 site; 5 servers + 10 network devices Low change; tight budget; one engineer Minimal NetBox if errors justify operations; otherwise controlled records first
5 sites; 50 servers; 100 devices; VMware/Zabbix/Ansible Inventory needed; existing runner; moderate complexity NetBox default; Nautobot for owned recurring workflows
50 sites; 500 servers; 1,000 devices; multiple DCs Dedicated teams; RBAC/HA; platform budget NetBox or Nautobot by workflow ownership; Device42 for justified discovery gaps
Legacy estate; counts unknown High discovery; security/data stewards available Device42 pilot, approved data into one source of truth
Automation-first; GitLab/Oxidized/Ansible; mixed vendors Frequent changes; Python owners; higher complexity Nautobot if Jobs/Apps save work; retain NetBox if the pipeline solves it

Run a time-boxed pilot with agreed acceptance criteria: reconcile a representative branch, prove one approved change and rollback, restore the platform in isolation and measure ownership effort. Record unmatched assets and unsupported platforms as failures to resolve. If the candidate does not improve these outcomes, its longer feature list is not a reason to migrate.

Questions to settle before migration

Can an existing NetBox database be used directly by Nautobot?

No. Treat the move as a data and integration migration. Map identities, IPAM semantics, custom fields and plugin objects; test API consumers and reconcile record counts before cutover. Retain a read-only copy and a tested return path.

Does discovery remove the need for a source of truth?

It supplies observations. Approved ownership, address reservation and intended configuration still need an authority and reconciliation policy. A discovered exception can be legitimate or unwanted; the collector cannot decide the business rule.

Should a mixed Cisco and MikroTik fleet choose Nautobot automatically?

No. Test the exact OS, module/driver and operations required. A strong Cisco onboarding path does not prove RouterOS parity. Keep platform-specific execution and rollback tests regardless of the central inventory product.

What must a Device42 pilot prove before purchase?

Prove credential-scoped coverage, identity matching and dependency usefulness on representative assets, then test restore and price the required entitlements. A large discovered-object count alone does not demonstrate reduced investigation time.

Official references and practical next reading

Official sources are linked beside the supported claims. Existing Meet AJ guides below cover implementation details. Commercial entitlements, model-specific MikroTik discovery parity and Device42 GraphQL remain verification items, not assumed features.

Install NetBox on Ubuntu

Ansible and AWX automation

Zabbix monitoring and agents

VMware ESXi 8 deployment

Cisco IOS XE hardening

MikroTik RouterOS 7 networking

Oxidized configuration backup

GitLab deployment

Grafana and infrastructure monitoring

Oxidized official project: polling, models and Git output

Share

Meet AJInfrastructure & DevOps
Loading…