Upgrade NetBox
Introduction
This guide will walk you through the process of upgrading NetBox, including a suggested pre-staging strategy. The approach we take to upgrading NetBox is as follows:
- Upgrade to the final patch of the current release, e.g. from
3.7.4
to3.7.8
- Upgrade to the final patch version of the next major release, e.g. from
3.7.8
to4.0.11
The official NetBox upgrade strategy can be found here: netbox/docs/installation/upgrading.md at develop ยท netbox-community/netbox (github.com)
This feature is a work-in-progress. There are many other considerations to take into account, such as plugin configurations and customizations, as well as sequencing.
Upgrade Playbooks and Templates
Within the NetBox Deploy view in Semaphore, you'll see these playbooks.
- NetBox Upgrade Check Path - checks the current running version with the mapping table to suggest the next version.
- NetBox Upgrade to Next Suitable Version - this will take the result from the "Check Path" playbook and perform an upgrade.
Checking the Upgrade Path
The following screenshot shows that NetBox 3.7.8
has been detected, and based on the upgrade path mapping table, the next suggested version is 4.0.11
.
When the playbook runs it checks a mapping table that is structured like this. The logic is:
- If
current_version
andpatch
are the different, then upgrade to the nextpatch
in the same release - If
current_version
andpatch
are the same, then upgrade tonext_major
netbox_upgrade_paths:
3.7.0:
patch: 3.7.8
next_major: 4.0.11
3.7.1:
patch: 3.7.8
next_major: 4.0.11
3.7.2:
patch: 3.7.8
next_major: 4.0.11
3.7.3:
patch: 3.7.8
next_major: 4.0.11
3.7.4:
patch: 3.7.8
next_major: 4.0.11
3.7.5:
patch: 3.7.8
next_major: 4.0.11
3.7.6:
patch: 3.7.8
next_major: 4.0.11
3.7.7:
patch: 3.7.8
next_major: 4.0.11
3.7.8:
patch: 3.7.8
next_major: 4.0.11
4.0.0:
patch: 4.0.11
next_major: 4.1.0
In a production environment you should not upgrade past the final release in the last release. For example, once 4.0.0
was released, 3.7.8
was considered the final stable release. Once 4.1.0
was released, we would consider 4.0.11
stable, and so on.
Running the Upgrade
Here you can see that the suggested upgrade version from the mapping table has been passed to the netbox-deploy
playbook to facilitate the upgrade.
You must take a full backup before starting the upgrade. If possible, we would suggest stopping all services on the server and taking a snapshot (disk image) before proceeding.
Ensure you check compatibility with any plugins that you have installed and have a clear upgrade path for them.
Ensure you check breaking changes in the NetBox Release notes that could impact you, for example, if you have integrated your systems using the NetBox Rest API, endpoints do change from time-to-time, which could break your integrations.
Have a clear test plan.
Pre-Stage Your Upgrades
It's fast and simple to spin up a staging NetBox instance for testing. A "belt and braces" approach to an upgrade is as follows: