Skip to main content

Easily provision new or existing devices based on pre-defined intended configurations.

Project description

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

[!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.

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!

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

nautobot_auto_provisioner-2.0.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nautobot_auto_provisioner-2.0.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file nautobot_auto_provisioner-2.0.0.tar.gz.

File metadata

File hashes

Hashes for nautobot_auto_provisioner-2.0.0.tar.gz
Algorithm Hash digest
SHA256 f229d1e54af8eb48f0af7b9c15625cf68ecef6e97aea47621ed3494839703319
MD5 8968f12b0e7902ee523ff777d354fe3e
BLAKE2b-256 ec87c8ec953caeba5ccf2f3069b86932395f2907c115af8f22e391f60f730d81

See more details on using hashes here.

File details

Details for the file nautobot_auto_provisioner-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nautobot_auto_provisioner-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 53469a08903ae4a635ef47204641da7bdcabae9a7f734dc5a87e6c1ca33bfc2d
MD5 1abe451e4a218e3b7dcc162440817db7
BLAKE2b-256 776edc4748ea4dfe026711802083ae797eebc1f2b45fa7b6eafac7c0f8b23e00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page