Using the App¶
This document describes common use-cases and scenarios for this App.
General Usage¶
Leveraging Nautobot to perform automated software upgrades on networking equipment.
Use-cases and common workflows¶
This app provides composable jobs that can be used individually as needed to perform the following tasks:
- Using Jobs to transfer software to a network device from a central software repository (HTTP(S), FTP, SFTP, etc).
- Using Jobs to save the running configuration of a device.
- Using Jobs to reboot a network device.
- Manage the lifecycle of software on a network device with a workflow execution to upgrade a device.
Individual Jobs for Custom Workflows¶
Each step of the upgrade process is implemented as a separate Nautobot Job that can be run independently:
| Job | Description |
|---|---|
| Transfer Software Image to Device | Transfers one or more software image files to a device from a remote URL. |
| Save Device Configuration | Saves the running configuration to the startup-config or an alternative file. |
| Install OS on Device | Installs the new OS image and reboots the device. |
| Reboot Device | Reboots a network device with an optional wait for reload. |
| Update Device Software Version | Updates the Software Version association on the device in Nautobot. |
| Execute OS Upgrade Workflow | Orchestrates all of the above jobs in sequence with a custom results view. |
Because each job can be run on its own, you can use an external orchestrator (such as Nautobot Job Hooks, an external workflow engine, or a CI/CD pipeline) to build custom upgrade workflows that fit your operational requirements. For example, you might run the file transfer job across an entire fleet in advance, then execute the install and reboot jobs during a maintenance window on a per-device basis.
Platform-Specific Reboot Behavior¶
The standalone Install OS on Device job exposes a Reboot toggle that controls whether the device is rebooted after the install. On most supported platforms, unchecking the toggle skips the post-install reboot. The platforms below behave differently — set expectations accordingly when planning a maintenance window. The Execute OS Upgrade Workflow job always reboots as part of its sequence.
| Platform | Reboot Behavior |
|---|---|
| Cisco IOS | Forces a reboot when Install Mode is enabled. If Install Mode is checked and Reboot is unchecked, the upgrade task will fail. |
File Size Validation¶
The Transfer Software Image to Device and Execute OS Upgrade Workflow jobs both accept a Skip File Size Check toggle (disabled by default). The toggle is the master switch: by default, the job validates the image size against the target device's available disk space before starting the transfer. Check the toggle to bypass that validation.
By default (toggle unchecked):
- If the selected Software Image File has
image_file_sizepopulated, that value is forwarded to pyntc. - If
image_file_sizeis empty and the download URL is HTTP(S), the job issues aHEADrequest withAccept-Encoding: identityand uses the response'sContent-Length. IfContent-Lengthis not returned, it falls back to a cancelledGET. If neither yields a size, the job fails before starting the transfer. - If
image_file_sizeis empty and the download URL is not HTTP(S), the job fails with a message asking you to populateimage_file_sizeor check the Skip File Size Check toggle. - pyntc then checks the target device's available disk space against the resolved size before starting the transfer. If the device lacks room, pyntc raises
NotEnoughFreeSpaceErrorand the job surfaces this as an explicit "Insufficient disk space on device" error so the cause is distinguishable from checksum or generic transfer failures.
When the toggle is checked, the size path is skipped entirely — no HEAD probe, no pyntc free-space check. Check it when your image source does not report Content-Length and you have not populated image_file_size on the Software Image File, or when you otherwise need to bypass the validation.
Operational Compliance Integration¶
When the Nautobot Operational Compliance app is installed alongside OS Upgrades, the Execute OS Upgrade Workflow job automatically expands to include pre-change and post-change operational state checks. This provides a built-in mechanism for validating that network devices are healthy before and after an upgrade.
How It Works¶
With Operational Compliance enabled, the upgrade workflow chain expands from:
to:
Pre Check → Upload Image → Save Configuration → Install OS → Post Check → Upgrade Validation → Assign New Software
- Pre Check — Collects command output from devices before the upgrade begins using the Operational Compliance
CollectCommandOutputjob. This captures the baseline operational state. - Post Check — Collects the same command output after the OS install and reboot, capturing the post-upgrade operational state.
- Upgrade Validation — Runs the Operational Compliance
CompareCommandOutputjob to compare pre and post check results against the selected validation rules, highlighting any unexpected changes.
Selecting Validation Rules¶
When Operational Compliance is installed, the Execute OS Upgrade Workflow job form will display additional input fields:
- Validation Rules — Select individual validation rules to run during pre/post checks.
- Validation Rule Groups — Select validation rule groups to run during pre/post checks.
- Fail Fast — When enabled (default), the upgrade validation will stop on the first error encountered.
If no validation rules or validation rule groups are selected, the Pre Check, Post Check, and Upgrade Validation steps are automatically skipped.
Viewing Results¶
The custom job results view reflects the expanded workflow, showing the status of each step including the compliance checks:
Each step in the workflow displays one of the following statuses: pending, started, finished, skipped, or failure.



