• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Roger Perkin

Network Automation Architect

  • Network Automation
    • Network Automation Courses
    • What is NetDevOps?
    • Workflow Orchestration
    • Ansible Automation Platform
    • Ansible Workshop
    • What is Network Automation?
    • Network Automation Tools
    • ContainerLab
    • Ansible Training
      • What is Ansible?
      • Ansible Tutorial for Beginners
      • Ansible Network Automation
      • Ansible Inventory Example
    • Python Network Automation
      • Nornir
      • Python Network Automation Course
      • Python for Network Engineers
      • Python VENV / Virtual Environment Tutorial
      • Python Tutorial for Beginners
      • pyATS
    • Network Source of Truth
      • NetBox
      • Infrahub
      • NautoBot
    • NetDevops
    • DevOps Tutorial
      • Git Training
      • Terraform Training
      • Linux Training
      • Kubernetes Training
      • Devops Training Course
      • Azure Devops Training
    • Terraform
    • GIT
      • Git Commands
      • What is GitHub?
    • Docker Training
    • Confluence
    • Microsoft Azure
  • Cisco
    • ISE
    • SD WAN Training
    • Password Recovery
    • Software-Upgrade-Guides
    • BGP
    • Data Center
    • WIRELESS
  • CCIE
  • Blog
  • About
    • My Red Special Guitar
  • Contact

Nautobot Device Onboarding Tutorial

Home » Network Automation » NautoBot

What Is Nautobot Device Onboarding?

Nautobot Device Onboarding is a Nautobot app that automates the discovery and initial population of network devices into Nautobot, turning existing network infrastructure into structured, usable source-of-truth data.

https://docs.nautobot.com/projects/device-onboarding/en/latest

To onboard devices in Nautobot, I am going to use the nautobot-device-onboarding app via its dedicated jobs, like Sync Devices From Network and Sync Network Data From Network, which leverage Netmiko/NAPALM to automatically discover and populate device details (IPs, Interfaces, VLANs) from your network using just an IP/Hostname and Location, simplifying data entry significantly. You can find these under the Jobs menu in the Nautobot UI, or manually create devices by defining their core attributes like Name, Role, Type, and Location in the Devices section first. 

Prerequisites for Nautobot Device Onboarding

✔ Nautobot installed and running
✔ Device Onboarding app enabled
✔ SSH/API access to devices
✔ Valid credentials configured
✔ Supported network OS
✔ Sites and metadata created
✔ Permissions to run jobs
✔ Python drivers installed

How Nautobot Device Onboarding Works

At a mechanical level, Nautobot Device Onboarding is a job-driven discovery workflow that connects to network devices, collects live operational data, normalizes it, and maps it into Nautobot’s data models.

It is a one-time or ad-hoc discovery process, not a continuous polling system.

1. Device Onboarding Is Triggered as a Nautobot Job

Device Onboarding runs as a Nautobot Job, which means:

  • It is executed:
    • From the Nautobot UI
    • Via the REST API
    • Or via automation (e.g., CI/CD)
  • It runs asynchronously using Nautobot workers
  • All actions are logged and auditable

Mechanically:

  • A job instance is created
  • Input parameters are passed (IP, hostname, site, role, credentials, etc.)
  • The job execution context controls permissions and scope

2. Nautobot Establishes a Connection to the Device

Once the job starts:

  • Nautobot attempts to connect to the device using:
    • SSH (most common)
    • Or API access if supported
  • Connection handling is delegated to:
    • NAPALM
    • Netmiko
    • Platform-specific drivers

What happens here:

  • Device OS and platform are identified
  • Connection validation occurs
  • Failures stop the process early with clear error output

3. Live Device Data Is Collected (Discovery Phase)

After a successful connection, Nautobot pulls operational data from the device.

Typical data collected includes:

  • Hostname
  • Serial number
  • Device model and vendor
  • OS version
  • Interface list and status
  • Interface MAC addresses
  • IP addresses (IPv4/IPv6)
  • VLAN membership (where supported)

Important detail:
This data reflects the current running state of the device, not intended state.


4. Data Is Normalised and Translated

Raw device data is not written directly into Nautobot.

Instead:

  • Platform-specific outputs are normalized
  • Vendor-specific differences are abstracted
  • Data is mapped to Nautobot’s internal object models

For example:

  • A physical interface becomes a dcim.Interface
  • An IP address becomes an ipam.IPAddress
  • The device itself becomes a dcim.Device

This normalization is what allows multi-vendor onboarding.


5. Nautobot Matches or Creates Core Objects

Next, Nautobot decides whether to create or update objects.

Device Matching Logic:

  • If the device already exists:
    • Update allowed attributes
    • Skip protected fields
  • If it does not exist:
    • Create a new Device object
    • Assign:
      • Site
      • Role
      • Device Type
      • Manufacturer

Device Types:

  • Can be auto-created
  • Or matched to existing types depending on configuration

6. Interfaces and IP Addresses Are Created or Updated

Once the device exists:

  • Interfaces are created or updated:
    • Physical interfaces
    • Logical interfaces (VLANs, loopbacks)
  • IP addresses are:
    • Created in IPAM
    • Assigned to interfaces
    • Marked with appropriate status

Key behavior:

  • Onboarding typically adds missing data
  • It avoids deleting existing objects unless explicitly configured

7. Data Validation and Conflict Handling

Before committing changes:

  • Nautobot enforces:
    • Uniqueness constraints
    • Required fields
    • Relationship rules
  • Conflicts are logged, not silently ignored

Examples:

  • Duplicate serial numbers
  • IP conflicts
  • Missing required metadata

Failures at this stage prevent partial or corrupt data ingestion.


8. Data Is Written to the Nautobot Database

After validation:

  • Objects are committed to the database
  • Relationships are finalized
  • Transaction boundaries prevent partial writes

This ensures:

  • Data consistency
  • Atomic updates
  • Clean rollback on failure

9. Job Results Are Logged and Exposed

After completion:

  • Job output shows:
    • Created objects
    • Updated objects
    • Skipped objects
    • Errors and warnings
  • Results are stored for audit and troubleshooting

This is critical for:

  • Compliance
  • Change tracking
  • CI/CD integration

10. Nautobot Becomes the Source of Truth

At the end of the process:

  • Discovered data becomes authoritative in Nautobot
  • Teams can now:
    • Generate configs
    • Run compliance checks
    • Feed automation tools
    • Enforce validation rules

Installing the Nautobot Device Onboarding App

Nautobot Device Onboarding App

Validating and Cleaning Data After Device Onboarding

Automating Device Onboarding with Nautobot Jobs and APIs

Frequently Asked Questions

What network devices are supported by Nautobot Device Onboarding?

Does Nautobot Device Onboarding require SSH or API access?

Category: NautoBot
ansible course for network engineers
Get Access to my Ansible Course NOW
Previous Post:The Importance of Network Orchestration in Modern Infrastructure

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Let’s get started

Take a look at my premium courses on Ansible, Nornir & Git or buy them all with the Network Automation Bundle!

Network Automation Courses

Navigation

Python VENV Tutorial
Python for Network Engineers

Network Automation
Network Automation Courses
Network Discovery Tools
Network Automation Conferences
Ansible Training
What is Ansible?
Devops Tutorial
Network Source of Truth
DevOps Glossary
Network Monitoring Software

Contact

Contact

Get in touch with me here

[email protected]

  • Twitter
  • LinkedIn
  • YouTube
Buy me a coffeeBuy me a coffee

Copyright © 2026 · Roger Perkin · All Rights Reserved · Privacy Policy – Terms