Last Month in Nautobot – September 2024

Blog Detail

Welcome to our monthly Nautobot community update! We’ll dive into the latest updates across the Nautobot community, highlighting the key milestones, releases, and noteworthy contributions. From new features and enhancements to bug fixes and events, there’s always something happening in our dynamic ecosystem. Open source is at the core of our values, empowering individuals and organizations to collaborate, innovate, and make a positive impact together. This monthly blog post is our way of celebrating the accomplishments and contributions of our Nautobot community members.

Nautobot Core

Releases – Stable

  • Nautobot: v2.3.5 – 2024-09-30
    • #6257 – Added is_occupied boolean filter to the Rack elevation API endpoint to allow filtering by occupied or unoccupied units.
    • #6289 – Added the add button to IPAM Services.
    • #6057 – Enhanced job delete functions to prevent users from deleting system jobs from the UI and the API.
    • #5802 – Override get_required_permission() in SavedViewUIViewSet to achieve the intended behavior.
    • #5924 – Fixed the redirect URL for the Device Bay Populate/Depopulate view to take the user back to the Device Bays tab on the Device page.
    • #6170 – Fixed Prefix IPAddresses not accounting for Child Prefix IPAddresses in the UI.
    • #6217 – Fixed SavedView functionality not working in Rack Elevation List View.
    • #6233 – Corrected presentation of rendered Markdown content in Notes table.
    • #6248 – Fixed Device Type link and count from Device Family Detail View.
    • #6257 – Fixed the selection options for position on the device add/edit form to disable RUs that are currently occupied.
    • #6289 – Fixed lookup of IP Addresses in the Service form.
  • Nautobot: v2.3.4 – 2024-09-18
    • #5795 – Added support for NAUTOBOT_CACHES_TIMEOUT environment variable.
    • #6207 – Added the ability to filter virtual machines by their cluster names or IDs.
    • #5795 – Changed default cache timeout for Constance configuration from 1 day to 300 seconds to match other caches.
    • #6207 – Fixed incorrect link in ClusterTable for device count column.
    • #6207 – Fixed incorrect link in PowerPanelTable for power feed count column.
    • #6230 – Fixed an issue with Celery Scheduler around datetime imports.
  • Nautobot: v2.3.3 – 2024-09-17
    • #6212 – Updated Django to ~4.2.16 to address CVE-2024-45230 and CVE-2024-45231.
    • #6184 – Fixed an exception in extras.models.groups._map_filter_fields method when certain App filter_extensions were present.
    • #6190 – Added display property to Prefix to display its namespace along with the prefix to allow differentiation between prefixes in the UI.
    • #6197 – Fixed an exception in core.utils.lookup.get_model_for_view_name function when rendering certain App object list views.
    • #6203 – Fixed a performance regression observed when change logging resulted in a large number of ObjectChange records (such as in an SSoT Job).
  • Nautobot: v2.3.2 – 2024-09-04
    • #6182 – Updated cryptography to 43.0.1 to address GHSA-h4gh-qq45-vh27. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.
    • #5180 – Added filtering Job Results by Scheduled Job.
    • #5591 – Added time_zone field to ScheduledJob model.
    • #6120 – Added Status field to VRF model.
    • #6129 – Added collapsible icon rotation to homepage panels.
    • #5591 – Corrected several bugs around handling of ScheduledJob execution when settings.TIME_ZONE is other than “UTC”.
    • #5591 – Added missing Meta.ordering definition to ScheduledJob model.
    • #6123 – Fixed cable status coloring for DeviceModule*Table rows in dark mode.
    • #6131 – Fixed a regression in which IP addresses and prefixes created through the /api/ipam/prefixes/<uuid>/available-ips/ and /api/ipam/prefixes/<uuid>/available-prefixes/ REST API endpoints could not be assigned custom field data during their creation.
    • #6146 – Added missing DynamicGroup content to Device Detail View and Software Image File Detail View.
    • #6175 – Prevented some AttributeError exceptions from being raised when an App contains a model that doesn’t inherit from BaseModel.

Releases – LTM 1.6

  • Nautobot: v1.6.28 – 2024-09-24
    • #6152 – Fixed table column ordering.
    • #6237 – Corrected presentation of rendered Markdown content in Notes table.
    • #6262 – Fixed invalid installation of xmlsec library in the Nautobot Docker images.
  • Nautobot: v1.6.27 – 2024-09-04
    • #6182 – Updated cryptography to 43.0.1 to address GHSA-h4gh-qq45-vh27. This is not a direct dependency so will not auto-update when upgrading. Please be sure to upgrade your local environment.
    • #6081 – Fixed AttributeError during pre_migrate when permission constraints are applied to custom fields.

Apps Ecosystem

  • Nautobot App ChatOps: v3.1.0 – 2024-09-30
    • #317 – Migrated IPFabric SSoT Job command from SSoT project.
    • #325 – Added Python 3.12 support.
    • #306 – Added reversible migration for Grafana.
    • #327 – Removed and replaced deprecated Slack API.
  • Helm Charts: v2.3.2 – 2024-09-24
    • #445 – Fixed Media files directory being overwritten by volumeMount.
  • Nautobot App SSoT: v2.8.1 – 2024-09-23
    • #552 – Disabled saved view for SSOTInfobloxConfig.
  • Nautobot App Netbox Importer: v2.1.0 – 2024-09-20
    • #165 – Added --trace-issues argument to nautobot-server import_netbox command to log exception tracebacks.
    • #165 – Added created and updated to Nautobot model stats.
    • #166 – Added Nautobot v2.2.x support.
    • #168 – Added importing ConfigContext model.
    • #179 – Added Python 3.12 support.
    • #166 – Changed importing locations to allow importing to many-to-many field locations if defined.
    • #165 – Fixed reporting non-imported (save() failed) instances to DiffSync library.
    • #174 – Fixed multi-select custom fields failing to import.
  • Helm Charts: v2.3.1 – 2024-09-20
    • #444 – Added additional properties in the root of values json schema.
    • Upgraded Nautobot from 2.3.2 to 2.3.4.
    • Upgraded Bitnami common subchart from 2.22.0 to 2.23.0.
    • #439 – Fixed documentation for persistent static and media files.
  • Nautobot App Design Builder: v2.0.1 – 2024-09-19
  • Nautobot App Floor Plan: v2.4.0 – 2024-09-18
    • #8 – Added grid step option to FloorPlan.
    • #117 – Added filter extension to be able to filter racks that are assigned/unassigned to a floor plan tile.
    • #122 – Added Python3.12 support.
    • #116 – Fixed Y Axis with large starting seed causing graphical bleeding.
    • #121 – Fixed Floor Plan Tiles with Letters displaying Integer values for Floor Plan Tile views.
    • #122 – Excluded internal allocation_type and on_group_tile fields from Floor Plan Tile add/edit form.
  • Nautobot Ansible: v5.3.1 – 2024-09-18
    • #422 – Fixed admin_permission module to properly convert list of groups to UUIDs.
    • #427 – Fixed setting of default_ip_version option.
    • #427 – Fixed logic in add_ip_address that sets Ansible host values.
  • Nautobot App Circuit Maintenance: v2.3.0 – 2024-09-16
    • #319 – Added Python 3.12 support.
  • Nautobot Ansible: v5.3.0 – 2024-09-12
    • Added multiple new modules including vlan_locationcontactteamcontrolleradmin_useradmin_groupadmin_permission.
    • Added Capability to Support IPv6 Host in Primary IP.
    • Added role option to vm_interface module.
  • Nautobot App Secrets Providers: v1.4.2 – 2024-09-10
    • #145 – Updated boto3 dependency to ^1.34 to permit installation of newer compatible versions.
  • Nautobot App Nornir: v2.1.0 – 2024-09-09
  • Nautobot App SSoT: v3.1.0 – 2024-09-06
    • #527 – Added Python 3.12 support.
    • #528 – Added DNA Center integration to _MIN_NAUTOBOT_VERSION as it requires Nautobot 2.2 for Controller object.
    • #526 – Updated the ExampleDataSource job to improve memory utilization with large data sets.
    • #526 – Changed memory profiling logging output to format bytes into KiB/MiB.
    • #521 – Fixed generalized Exception with SecretsGroup and added custom Exception in case SecretsGroup not found on ExternalIntegration.
    • #528 – Fixed bug preventing use of Nautobot 2.1 due to ACI requiring 2.2.
    • #528 – Fixed JobResult association to Sync object to CASCADE instead of PROTECT so Sync object is deleted when JobResult is instead of preventing deletion.
    • #530 – Fixed Infoblox Configuration List Bug when on Nautobot 2.3 by disabling SSOTInfobloxConfig from being a saved view.
  • Nautobot App Device Lifecycle Mgmt: v2.2.0 – 2024-09-06 #367 – Added support for Python 3.12. #343 – Fixed logic populating the “Inventory Part ID” drop-down in the create/edit form for the Hardware Notice.
  • Helm Charts: v2.3.0 – 2024-09-06
    • #432 – Added annotations to the Nautobot deployment.
    • #434 – Enabled celery readiness and liveliness probes by default.
    • Upgraded Nautobot from 2.3.1 to 2.3.2.
  • Nautobot App Golden Config: v2.1.2 – 2024-09-03
    • #792 – Fixed issue with dynamic groups not being called in Nautobot 2.3.0.
    • #800 – Fixed issue where compliance among other fields were not being updated when Django 4.2 was installed.
    • #792 – Added an experimental _manual_dynamic_group_mgmt config to collect feedback on appropriate methodology, use at your own risk!!

Community


Conclusion

Do you have any cool Nautobot-related project we should write about? Swing by the Network to Code Slack -> channel #nautobot and write us a quick line! Sign up here if you don’t have an account.

-Cristian and Gary



ntc img
ntc img

Contact Us to Learn More

Share details about yourself & someone from our team will reach out to you ASAP!

Last Month in Nautobot – August 2024

Blog Detail

Welcome to our monthly Nautobot community update! We’ll dive into the latest updates across the Nautobot community, highlighting the key milestones, releases, and noteworthy contributions. From new features and enhancements to bug fixes and events, there’s always something happening in our dynamic ecosystem. Open source is at the core of our values, empowering individuals and organizations to collaborate, innovate, and make a positive impact together. This monthly blog post is our way of celebrating the accomplishments and contributions of our Nautobot community members.

Nautobot Core

Releases – Stable

Apps Ecosystem

  • Cookiecutter Nautobot App: nautobot-app-v2.3.2 – 2024-08-27
  • Cookiecutter Nautobot App: nautobot-app-v2.3.1 – 2024-08-26
    • #129 – Added support for Python 3.12.
    • #148 – Fixed dependency resolution in development environment Docker container builds.
  • Nautobot App SSoT: v3.0.1 – 2024-08-26
    • #507 – Fixed DataTarget example job to include run() function for using ExternalIntegration or supplied URL and token.
  • Helm Charts: v2.2.0 – 2024-08-23
    • #421 Fixed unnecessary Prometheus metrics endpoint.
    • Upgraded Nautobot from 2.2.7 to 2.3.1.
    • Upgraded Bitnami Common subchart from 2.20.3 to 2.22.0.
    • Upgraded nginx-prometheus-exporter image from 1.2.0 to 1.3.0.
  • Pylint Nautobot: v0.3.1 – 2024-08-22
  • Nautobot App Secrets Providers: v3.1.1 – 2024-08-22
  • Nautobot App SSoT: v3.0.0 – 2024-08-22
    • Upgraded to support DiffSync 2.0 which utilizes Pydantic 2.0. This should improve processing times for any integrations or personal Apps utilizing the SSoT framework. However, it will require some slight changes to any code using the framework. You can find details about these required updates in the documentation.
    • Added a new integration supporting Cisco’s DNA Center product. In addition, we’ve migrated the IPFabric ChatOps command allowing triggering of the SSoT sync Job to the ChatOps project, so you will be required to upgrade to 3.1.0 if you use that Job.
  • Nautobot App SSoT: v2.8.0 – 2024-08-21
    • #504 – Added pagination to the get_all_subnets Infoblox client call.
    • #491 – Fixed tenant names and introduced tag for multisite.
  • Nautobot App Golden Config: v1.6.6 – 2024-08-15
    • #787 – Added support for version 7 of DeepDiff.
  • Cookiecutter Nautobot App: nautobot-app-v2.3.0 – 2024-08-08
    • #106 – Replaced black and flake8 with ruff for formatting and linting.
    • #132 – Fixed various test failures on newly baked cookies.
  • Nautobot App Circuit Maintenance: v2.2.4 – 2024-08-08
    • Added support for Nautobot v2.3.0.
  • Nautobot App Device Lifecycle Management: v2.1.2 – 2024-08-08
    • #344 – Added number field to Contract retrieve template.
    • #348 – Updated Device Software Validation Reports Bar Graph x-axis label modification.
    • #360 – Added support for Django 4.
    • #328 – Updated the max character length on majority of text fields.
    • #360 – Fixed Nautobot v2.3 incompatibility.
  • Nautobot App Floor Plan: v2.3.0 – 2024-08-07
    • #8 – Added grid seed option to FloorPlan.
    • #63 – Added default statuses for floorplantile objects.
    • #109 – Added Django 4 support.
  • Nautobot App BGP Models: v2.2.0 – 2024-08-07
    • #29 – Added support for ASNs ASDOT notation (RFC 5396).
    • #215 – Added Django 4 support.
  • Nautobot App Firewall Models: v2.1.0 – 2024-08-07
    • #258 – Added Django 4 support.
  • Nautobot App Device Onboarding: v4.0.0 – 2024-08-05
    • Complete revamp of the app’s design and framework. See the full release notes for more details.
  • Nautobot App Design Builder: v1.4.0 – 2024-08-05
    • Enhanced the deployment mode introduced in 1.3. Pre-existing data (i.e., data not created by a design, or created by one not in deployment mode) can now be imported into a design deployment. This design deployment then owns the lifecycle of that data just as if it had been created by it.
    • Added a delete option to the design decommission process.
  • Nautobot App Secrets Providers: v3.1.0 – 2024-08-01
    • #67 – Added the ability to choose between multiple vaults (configurations) for HashiCorp.

Conclusion

Do you have any cool Nautobot-related project we should write about? Swing by the Network to Code Slack -> channel #nautobot and write us a quick line! Sign up here if you don’t have an account.

-Cristian and Gary



ntc img
ntc img

Contact Us to Learn More

Share details about yourself & someone from our team will reach out to you ASAP!

Introducing Nautobot’s Floor Plan Application

Blog Detail

Nautobot is the Source of Truth for your network and a platform that supports an application ecosystem. The most recent addition to the Nautobot Application Ecosystem is the Nautobot Floor Plan Application. Simply put, this application allows firms to map out and plan their physical space requirements, in a top-down view format, in locations such as data centers and colocation cages.

Benefits of Data Aggregation/Consolidation in the Floor Plan App

Having all your data that describes your desired network state in one place has a few advantages, including allowing users to expose relationships between different objects and easily access related data about a given object. These capabilities are not possible if the various data types are kept in disparate systems.

Nautobot can act as an aggregation layer across all the authoritative data sources in your environment.

The Nautobot Floor Plan Application itself has two tremendous benefits:

  • It allows a firm to model, understand, and plan its floor space.
  • It exposes relationships and allows easy navigation between the component racks and spaces in the floor plans and objects like the rack elevation drawing, device information, and site information.

This post will discuss and elaborate on these benefits.

Example Use Case Study

The Floor Plan Application aids in data center management by providing the ability to create a gridded representation of the floor plan of a Nautobot Location and indicate the relative location of each Nautobot Rack within that floor plan.

This example floor plan, below, created with the app, shows a lot of useful information:

  • Two rows of racks (dark green) with the rack numbers and amount of rack units consumed (ex: 3 / 48 RU)
  • A cold aisle (blue) between the two rack rows
  • Hot aisles (orange) on the outside of each rack row
  • Racks ams01-101 through ams01-104 face to the right (indicated by the white gap on each grid space)
  • Racks ams01-105 through ams01-108 face to the left (indicated by the white gap on each grid space)
  • An unusable space in grid 4, 1 (X, Y) (gray)
  • A planned rack ams01-109 in space 4, 6 (light green) that will face left (indicated by the black gap on the grid space)

Also notice that the app allows users to create multi-tile objects. In the example floor plan, the cold aisle spans four tiles vertically, as described by the Y size parameter below:

Leveraging the Floor Plans in Nautobot

Having all the data for your desired network state in Nautobot makes it easier for us, as humans, to understand what is often a very complex environment. Let’s look at a scenario using our prior floor plan example.

In this scenario, the user has leveraged the Floor Plan App to model out the floor plan in the ams01 site and wants to better understand the equipment deployed in the ams01 racks shown.

Easy navigation in Nautobot from one object to related objects helps people understand what is typically a complex environment.

The layout shows that rack ams01-102 has 3 of the 48 available rack units occupied:

To further explore, the user can click in the middle of the ams01-102 grid square (representing a tile) to be taken to the rack’s home page in Nautobot. Once here, there is a wealth of useful information in the Rack panel:

  • The quantity of devices in the rack
  • The rack’s Tenant (owner)
  • The space and power utilization in the rack
  • To the right of the Rack panel there are rack elevation drawings for the front and back of the rack, displaying which rack units are occupied by which objects.
    • Clicking on an object on the rack elevation drawing will take you to the home page for that object.
  • The user sees that ams01-edge-02 is taking up rack units 40-41.
  • The user clicks on the image of ams01-edge-02 in the elevation drawing to go to the home page for that device.
  • The page shows details about the device, such as Device Type, Role, and management IP address.

Easily navigating between these related objects saves users time and effort and helps to tie together the different aspects of, and data types involved in, activities such as space and power planning. This association of related objects can also simplify your automation infrastructure because it exposes the related fields and Custom Relationship via the GraphQL API. This allows you to construct a GraphQL query that is able to traverse both related fields and Custom Relationships to provide a more meaningful response.

Easily associating an object to other related objects in Nautobot also simplifies your automation infrastructure.

Creating and Editing the Floor Plans

The creation of floor plans is explained very well in the app’s documentation.

Why Is This Valuable?

The Floor Plan Application allows firms to effectively understand and plan their physical spaces in Nautobot because it not only models out the physical space, but also allows the users and automation to quickly navigate to other related data, such as power utilization in a given rack or a specific device model in a specific rack unit. Additionally, Nautobot’s automation features, such as robust RESTful APIs and GraphQL interface, allow for immersive programmatic integration with a firm’s automation infrastructure, allowing the firm to work toward fully automating space and power planning workflows, including running space and power reports for specific pods, rows, and racks.

Where to Find Nautobot’s Floor Plan Application

Code

The Nautobot Floor Plan Application code repository can be found on GitHub.

Docs

The documentation is here. This also includes installation instructions.

Want to Try It Out?

The Nautobot Floor Plan App is available to demo online in Network to Code’s Nautobot public sandbox environment. Once you log in (the user/password are shown in the blue banner when you access the URL), navigate from the top-level menu Organization –> Location Floor Plans. From here you can select a specific site and view the floor plan.

NOTE: To scroll your browser window so that the floor plan is fully in view, click and drag the scroll bar on the right side of your browser window. Using your scroll wheel when the cursor is over any part of the floor plan will zoom in or out rather than scrolling the window. Once you are zoomed in, you can click and drag to scroll.

From there you can do things like:

  • Click on the ‘+’ or pencil icon on a square (tile) to edit a square’s attributes
    • Add a specific rack in the square.
    • Specify a status (reserved, hot aisle, code aisle, unusable, etc.) for the square.
    • Specify a rack’s orientation in the square.
  • Navigate to Organization –> Statuses to view, create, update, or delete statuses for use on the Floor Plans.

You can also join NTC’s public Slack channel and ask questions about the Floor Plan App in the #nautobot channel.

Wrapping Up

The Nautobot Floor Plan Application brings exciting and powerful capabilities to firms that:

  • Want a convenient tool to manage their physical floor space
  • Want a floor space planning tool that will integrate easily into an automated planning workflow; examples include:
    • Automated space and power reports for a given pod, site, row, or rack
    • Automated site floor layout planning Jobs
  • Want to leverage Nautobot as a Source of Truth and understand that the more data Nautobot holds, the more value it provides

We are very excited to start talking with current and potential Nautobot users about this application; we hope that you are excited to try it out and that it delivers value to you and your firm!

Thank you, and have a great day!

-Tim



ntc img
ntc img

Contact Us to Learn More

Share details about yourself & someone from our team will reach out to you ASAP!