Easily provision new or existing devices based on pre-defined intended configurations.
Project description
Nautobot Auto Provisioner
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.
Use Cases
[!IMPORTANT] 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.
[!TIP] 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.
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.
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.
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
-
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.
-
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!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nautobot_auto_provisioner-2.0.0.tar.gz.
File metadata
- Download URL: nautobot_auto_provisioner-2.0.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f229d1e54af8eb48f0af7b9c15625cf68ecef6e97aea47621ed3494839703319
|
|
| MD5 |
8968f12b0e7902ee523ff777d354fe3e
|
|
| BLAKE2b-256 |
ec87c8ec953caeba5ccf2f3069b86932395f2907c115af8f22e391f60f730d81
|
File details
Details for the file nautobot_auto_provisioner-2.0.0-py3-none-any.whl.
File metadata
- Download URL: nautobot_auto_provisioner-2.0.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53469a08903ae4a635ef47204641da7bdcabae9a7f734dc5a87e6c1ca33bfc2d
|
|
| MD5 |
1abe451e4a218e3b7dcc162440817db7
|
|
| BLAKE2b-256 |
776edc4748ea4dfe026711802083ae797eebc1f2b45fa7b6eafac7c0f8b23e00
|