Skip to main content

Nautobot Auto Provisioner


An App for Nautobot.

This App has been updated for Nautobot 3.0

Overview

Auto Provisioner is a Nautobot Plugin that enables you to push configurations to both new and existing devices. You can select a Git repository from Nautobot Git Repositories—currently supported with the backup or intended config repository managed by Golden Config—as the source for your configurations.

This project was inspired after the successful completion of #100DaysOfNautobot.

Auto Provisioner provides three core Nautobot Jobs, each tailored to a specific operational use case.

Auto Provisioner Jobs


Use Cases

For all use cases, it is assumed that Nautobot has IP connectivity with the target device being provisioned. Ensure devices are reachable before running any jobs.

When provisioning new devices, consider using technologies such as DMVPN, DHCP reservations, or similar solutions to establish initial connectivity with minimal configuration. Once basic reachability is in place, Auto Provisioner can handle the rest.

This plugin addresses the following use cases:

Use Case 1: Baseline Existing Device (from Backup)

Baseline Existing Device Job lets users push an entire configuration to a selected device to restore it to a known-good state. In dynamic environments where changes are made to support temporary operational needs, this job helps eliminate configuration drift by reverting the device to its last-known-good backup stored in the repo.

Baseline Existing Device

Use Case 2: Baseline Existing Device (from Intended)

The same job can also be used to push newly generated intended configurations. For example, if your organization rolls out a new security standard or feature update, you can use this job to apply those changes to the device using your intent-based templates from the intended config repository.

Use Case 3: Replace Existing Device

The Replace Existing Device Job is designed for situations where hardware must be replaced—whether due to failure, upgrade, or lifecycle refresh. This job retains all existing metadata in Nautobot (like role, location, IP, etc.) and applies it to the new device. It also allows for updates to attributes like device type and serial number, ensuring that your source of truth remains accurate.

Replace Existing Device

Use Case 4: Provision New Device

Provision New Device Job enables users to create and provision a completely new device in Nautobot. The job prompts for required metadata (like hostname, IP address, and interface), creates the device object, and then pushes the appropriate configuration from the selected repository.

Provision New Device


Supported Platforms

Auto Provisioner leverages Netmiko's multi-vendor library to simplify SSH connections to network devices. Below is a list of commonly supported platforms. Checkout Kirk Byers' GitHub Site for the comprehensive list.

  • Arista vEOS
  • Cisco IOS
  • Cisco IOS-XE
  • Cisco IOS-XR
  • Cisco NX-OS
  • Cisco SG300
  • Juniper Junos
  • Linux

Installing the App in Nautobot

Auto Provisioner is Python package published in pypi.org/project/nautobot-auto-provisioner and can be installed using:

pip install nautobot-auto-provisioner

Please checkout the full installation guide for more detailed steps.


How To Use the App

Using the the app is just as easy as running any other Nautobot Jobs! Just pick the right job for your use case.

For additional info and troubleshooting tips, check out the Auto Provisioner User Guide.


Planned Future Updates

  1. Future versions will support user defined Git Repos to decouple from Golden Config's backup and intended configs for greater fexibility. This will allow users who already have a different proces for backups or generating intended configs.

  2. Wider support for credentials used to connect to devices. Currently, credentials are based on Nautobot's Secret Group but future iterations may support other methods.


Feedback

All feedbacks are welcome! This project began as part of a Nautobot learning journey and demonstrates key concepts like Nautobot Job creation, class-based approach, and plugin development. Open a topic under Discussion to share your ideas or ask questions.

Let's learn Nautobot together!

Metadata

Release files for nautobot-auto-provisioner 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nautobot-auto-provisioner 2.0.0
File Size Uploaded Provenance Actions
nautobot_auto_provisioner-2.0.0.tar.gz 12.8 kB Without provenance Details for nautobot_auto_provisioner-2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nautobot-auto-provisioner 2.0.0
File Interpreter ABI Platform Actions
nautobot_auto_provisioner-2.0.0-py3-none-any.whl Python 3 none any Details for nautobot_auto_provisioner-2.0.0-py3-none-any.whl

Total release size: 27.3 kB

Release files / nautobot_auto_provisioner-2.0.0.tar.gz

Download URL nautobot_auto_provisioner-2.0.0.tar.gz
Size 12.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f229d1e54af8eb48f0af7b9c15625cf68ecef6e97aea47621ed3494839703319
BLAKE2b-256 checksum
How to use checksums
ec87c8ec953caeba5ccf2f3069b86932395f2907c115af8f22e391f60f730d81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / nautobot_auto_provisioner-2.0.0-py3-none-any.whl

Download URL nautobot_auto_provisioner-2.0.0-py3-none-any.whl
Size 14.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
53469a08903ae4a635ef47204641da7bdcabae9a7f734dc5a87e6c1ca33bfc2d
BLAKE2b-256 checksum
How to use checksums
776edc4748ea4dfe026711802083ae797eebc1f2b45fa7b6eafac7c0f8b23e00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Security for nautobot-auto-provisioner 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page