Jekyll2024-09-05T16:38:31+00:00https://blog.networktocode.com/feed.xmlThe NTC MagNetwork to Codeinfo@networktocode.comLast Month in Nautobot - August 20242024-09-05T00:00:00+00:002024-09-05T00:00:00+00:00https://blog.networktocode.com/post/last-month-in-nautobot-2408Welcome 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.

Get in Touch!

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

]]>
Cristian Sirbu and Gary Snider
Introducing Nautobot v2.3.02024-08-12T00:00:00+00:002024-08-12T00:00:00+00:00https://blog.networktocode.com/post/nautobot-2.3.0Nautobot v2.3.0 has just been released, and we’re excited to share some of the new features and important changes that it includes!

Cloud Modeling

Nautobot v2.3.0 adds a new built-in “Cloud” app with four initial data models (CloudAccount, CloudResourceType, CloudNetwork, and CloudService). This app and models are designed specifically for the purpose of representing the cloud-based parts of your network in Nautobot, such as Amazon Web Services (AWS) and Google Cloud Virtual Private Clouds (VPCs), Azure VNETs, Application Load Balancers (ALBs) and Network Load Balancers (NLBs), and so forth.

Modular Devices

With Nautobot v2.3.0, you can now model modular network hardware in greater detail than ever before with the new, nestable ModuleBayTemplate, ModuleBay, ModuleType, and Module data models. With these, you can track individual line cards and route processors (including “cold standby” hardware not presently installed into a device), directly define interfaces and other port types as belonging to a specific module within the larger device, and even model your network hardware down to the level of individual SFP transceiver modules if you so desire.

Module Hierarchy

Object Metadata

A new set of functionality designed specifically for the needs of enterprise users, Object Metadata lets you flexibly define and track information about your network data in Nautobot, such as its provenance, ownership, and classification. For example, you might use this feature to track, on a per-record or even per-field basis:

  • Who is responsible for the accuracy of this data?
  • When (after what date) can this data be deleted?
  • What is the classification or risk level of this data?
  • Which system of record is this data originally sourced from?

Object Metadata will be especially useful to users in highly regulated industries and those with significant compliance and/or auditing mandates, as it can be used for data security, data orchestration, and data attestation applications. This functionality was previously only available via custom App development, but it has been requested by our users and customers often enough that we decided to go ahead and implement it as a core Nautobot feature.

Shareable Saved Views

Do you have that Device table configured just the way you like it, with specific columns shown or hidden, specific sorting, custom filters, and pagination? Now you can save sets of display preferences for any object table within Nautobot as “saved views”. Users can define multiple saved views for a given table, switch between them with ease, and even share their saved views with other users, allowing teams to define a shared user interface (UI) for their specific workflows. Furthermore, Nautobot administrators can even set a specific saved view as the default for a given view, which users can begin from to further customize Nautobot’s UI to their own liking.

Saved Views Menu

Enhanced Dynamic Groups

A third type of Dynamic Groups, “static” groups, are now available in Nautobot v2.3.0. The existing two types of groups (filter-defined and set-operation-defined) are still fully supported, but this third type is defined by directly assigning individual records to the group, providing the most granular control yet over Dynamic Group membership. These new groups have the same data model and APIs as the other group types, meaning that your Jobs and Apps (such as Nautobot Golden Config) can use these new groups immediately, with no updates necessary.

Additionally:

  • You can now assign a tenant and/or tags to each Dynamic Group.
  • The performance of Dynamic Group resolution and members lookup has been greatly improved thanks to a redesigned caching implementation.
  • Dynamic Groups are now supported by many more of Nautobot’s object types than ever before.

Interface Roles

A long-requested feature, Nautobot v2.3.0 now lets you assign user-definable Roles to individual device Interfaces (including virtual machine interfaces) for purposes of classification and configuration management.

And More

We’ve covered many of the high points of this release above, but there’s so much more to Nautobot v2.3.0, including dozens of bug fixes, UI enhancements, and additional features. As always, you can read the release notes for full details, and try out the latest Nautobot release at demo.nautobot.com to see these features in action.

-Glenn Matthews

]]>
Glenn Matthews
NTC’s Culture - The Foundation of Our Success2024-08-07T00:00:00+00:002024-08-07T00:00:00+00:00https://blog.networktocode.com/post/ntcs-culture-the-foundation-of-our-successAt NTC, we are incredibly proud to have been named one of Inc.’s Best Workplaces for the second year in a row. This recognition is a testament to our vibrant, fully remote workforce and the intentional culture we have cultivated. Research shows the positive impact a highly engaged workforce has on customer satisfaction, attracting prospective clients, and increasing revenue compared to a semi-engaged workforce. In my experience, a great culture doesn’t just happen; you must be purposeful and diligent.

As Chief People Officer, I attribute our success to three core principles: Lead to Grow, Demand Engagement, and Hire Smarter. These principles are not just abstract concepts; they are actionable strategies that we embed in our daily operations and long-term planning. They guide how we develop our leaders, engage with our team members, and select new hires. By focusing on these areas, we create a cohesive and motivated workforce that drives our company forward.

Step 1: Lead to Grow

Creating a thriving culture begins with leadership. At NTC, we ensure our leaders are not just managers but committed thought leaders and coaches. They align their decisions with our company values, foster transparency, and lead by example every day. This approach builds trust and lays a solid foundation for a positive workplace environment.

Step 2: Demand Engagement

Engagement is non-negotiable at NTC. We reject the paycheck-only mentality and instead promote a culture of collaboration and accountability. By actively seeking and acting on feedback, we maintain a dynamic connection across our dispersed workforce. Regular pulse checks help us stay agile and responsive to our team’s needs, ensuring we continually evolve and improve.

Once you invest in your leadership and create an authentic workplace, you are ready to embrace the right people to join your organization and add value to your culture. The right people will thrive in your environment, align with your values, and want to be a part of something bigger than the job they fill. It is only with these earlier steps in place that we are able to attract and develop the right people.

Step 3: Hire Smarter

Our recruitment process is designed to attract individuals who not only have the right skills but also align with our values and culture. We strive to provide a great candidate experience that offers insight into how we work together. This approach ensures that new hires are eager to contribute and will thrive within our company, adding to, and further enriching our culture.

Our Cultural Practices at NTC

We believe that a strong culture should resonate not just internally but with everyone who interacts with our company. I’ve always believed that you are creating the right environment when folks bang down your door to either get into your company or steal all the amazing people there. Here are a few ways we make that happen:

  1. Surveys and Feedback: We conduct various surveys throughout the year, such as Onboarding and Pulse surveys. Acting on feedback and communicating our actions is crucial in building trust and continuous improvement.
  2. Social Connectivity: We encourage participation in groups that enhance social connection and company impact. We support diverse interests and initiatives, from Slack channels for parenting or pet owners to employee groups focusing on development standards or DEIB (Diversity, Equity, Inclusion, and Belonging).
  3. Virtual Office Platform: Our latest initiative is a virtual office platform that adds a new dimension to remote work. This innovative tool allows us to move beyond Slack and Zoom, providing a more immersive and interactive experience that helps us stay connected on a personal level.

At NTC, our culture is not just a set of values on a poster. It’s a lived experience that permeates every aspect of our work. This intentionality in fostering a positive, engaged, and inclusive workplace is why we continue to be recognized on Inc.’s Best Workplaces. Our doors are always open to those who share our vision and values, and we look forward to continuing to grow together.

Thank you to all NTCers for being a part of our journey and for contributing to the culture that makes NTC exceptional!

-Heather

]]>
Heather Oliver
Introducing the New Device Onboarding App2024-08-06T00:00:00+00:002024-08-06T00:00:00+00:00https://blog.networktocode.com/post/device-onboarding-4.0As Network Automation becomes more popular and companies decide on Nautobot to fit the Network Source of Truth (NSoT) component within their reference architecture, the next crucial problem to solve is data population. This allows organizations quick automation wins that upper management wants to see! The starting point of population for most organizations is “Devices.” Up until now that process was probably a mix of manual populations, CSV imports, nautobot-app-device-onboarding, and most likely the Python library “network-importer” to extend that data further. All these methods have their own pros and cons, but one of the most common asks was to make onboarding devices to Nautobot easier and more flexible. Introducing the Device Onboarding app 4.0!

This revamp of the Onboarding app exposes two new SSoT jobs to simplify the device onboarding process. The first job will onboard basic device information from an IP address. The second job extends the data gathered by pulling in Interface data including VLANs, VRFs, IP addresses (creating prefixes if needed), descriptions, and more! Onboarding 4.0 retains the original implementation for users who are making use of that framework, so you can try out the new features while retaining your existing workflow. I will discuss the new release in more detail throughout this blog post.

Why?

Populating a device inventory into Nautobot takes time. The time commitment is multiplied by the need for a number of different methods, applications, and libraries just to get a decent level of metadata assigned to devices. Onboarding 4.0 addresses these and additional concerns as outlined below.

  • The original OnboardingTask job in the plugin was capable of getting only basic device data into Nautobot.
  • Setting up network-importer as an external program felt disjointed and required additional infrastructure resources.
    • The dependency on Batfish was a challenge, as it required Batfish and its dependency on Docker to be able to be run in the environment.
    • The diffsync dependency didn’t have access to many of the new “contrib” features that nautobot-app-ssot exposes.
  • Adding new support for additional operating systems and data was difficult.
    • Extending an existing platform’s capabilities required additional Python modules to be installed into the environment.
      • The same challenge existed for adding new platform support.
  • The original Onboarding extension framework required a custom app and/or Python library to be available in the environment, which, depending on the deployment method used, can result in delays and complications.

What About the Original Extension Framework?

The original OnboardingTask job and its extension framework will remain available in Onboarding 4.0. We understand that this application has been around since the release of Nautobot, and many users have invested resources into extending the application using the original framework. A deprecation of the OnboardingTask job is planned for the future; but for now, the only change users of the original extension framework need to be aware of is that this job is now hidden by default.

To find the hidden job, simply navigate to Jobs–>Jobs. Click on the Filter button and select “hidden=Yes”.

hidden job filter

hidden job list view

Revealing the hidden job will allow you to run it and edit job attributes as usual.

First enable the job.

enable hidden job

Next, feel free to override the property of the job to un-hide it by overriding the default.

override hidden job

The New SSoT Jobs Explained

The biggest change implemented in the 4.0 release is the use of the Single Source of Truth (SSoT) framework. The SSoT app (nautobot-app-ssot) uses a combination of diffsync, SSoT contrib, and other tools to diff inputs from disparate data sources and then sync data between those systems. This allows us to not only onboard device data but compare and update as needed. There are two new SSoT jobs to accomplish this.

  • Sync devices from network - Mimics what the original onboarding task did, including creation of device(s), serial number, MGMT IP, and interface.
  • Sync data from network - Mimics what the old NTC library network-importer did—syncs interfaces, their MTU, description, IP address, type, status, etc. There is a toggle option to sync VRFs and add them to interfaces as well as a toggle for VLANs that can sync VLANs and add tagged/untagged VLANs to ports.

How It Works

This section will describe the newer SSoT jobs that this App exposes and how they work.

Frameworks in Use

  • Nautobot SSoT - Utilizing the existing Nautobot SSoT framework allows a common pattern to be reused and offers a path forward to add additional support and features.
  • Nautobot App Nornir - Utilized for Nornir Inventory plugins for Nautobot (specifically for Sync Network Data Job).
  • Nornir Netmiko - Used to execute commands and return results.
  • jdiff - Used to simplify parsing required data fields out of command outputs returned from command parser libraries like textFSM. Specifically extract_data_from_json method.
  • Parsers - Initially NTC Templates via textFSM, but support for pyATS, TTP, etc. is planned for the future.

YAML Definition DSL

The key extensibility feature in the new release is the ability to add new platform support by creating a single YAML definition file. The application comes with some logical defaults, but these can be overloaded and new platforms can be added via Git repositories.

File Format

Let’s review a few of the components of the file:

  • ssot job name - Name of the job to define the commands and metadata needed for that job. (choices: sync_devices or sync_network_data)
  • root key data name - Is fully defined in the schema definition.
  • commands - List of commands to execute in order to get the required data.
  • command - Actual show command to execute.
  • parser - Whether to use a parser (TextFSM, pyATS, TTP, etc.). Alternatively, none can be used if the platform supports some other method to return structured data, e.g., | display json or an equivalent.
  • jpath - The JMESPath (specifically jdiff’s implementation) to extract the data from the parsed JSON returned from parser.
  • post_processor - Jinja2-capable code to further transform the returned data post jpath extraction.
  • iterable_type - A optional value to enforce type casting.

As an example:

---
sync_devices:
  hostname:
    commands:
      - command: "show version"
        parser: "textfsm"
        jpath: "[*].hostname"
        post_processor: ""
..omitted..

How the SSoT Sync Devices From Network Job Works

  1. The job is executed with inputs selected.
    • List of comma-separated IP/DNS names is provided.
    • Other required fields are selected in the job inputs form.
  2. The SSoT framework loads the Nautobot adapter information.
  3. The SSoT frameworks network adapter load() method calls Nornir functionality.
    • The job inputs data is passed to the InitNornir initializer. Because we only have basic information, a custom EmptyInventory Nornir inventory plugin is packaged with the App. This gets initialized in the InitNornir function, but actually initializes a true inventory that is empty.
    • Since Platform information may need to be auto-detected before adding a Nornir Host object to the inventory, a create_inventory function is executed that uses the SSH-Autodetect via Netmiko to try to determine the platform so it can be injected into the “Host” object.
    • Finally, all the platform-specific commands to run plus all the JPath post_processor information loaded from the platform-specific YAML files must be injected into the Nornir data object to be accessible later in the extract/transform functions.
  4. Within the code block of a Nornir with_processor context manager, call the netmiko_send_commands Nornir task.
    • Access the loaded platform-specific YAML data and deduplicate commands to avoid running the same command multiple times; e.g., multiple required data attributes come from the same Show command.
  5. Utilize native Nornir Processor to overload functionality on task_instance_completed() to run command outputs through extract and transformation functions.
    • This essentially is our “ET” portion of an “ETL” (Extract, Transform, Load) process.
    • Next, the JSON result from the show command after the parser executes, e.g., Textfsm, gets run through the jdiff function extract_data_from_json() with the data and the jpath from the YAML file definition.
    • Finally, an optional post_processor Jinja2-capable execution can further transform the data for that command before passing it to finish the SSoT synchronization.

How the SSoT Sync Network Data From Network Job Works

For those looking to deep dive into the technical details or troubleshooting, here is how it works:

  1. The job is executed with inputs selected.
    • One or multiple device selection.
    • Other required fields are selected in the job inputs form.
    • Toggle certain metadata booleans to True if you want more data synced.
  2. The SSoT framework loads the Nautobot adapter information.
  3. The SSoT framework’s network adapter load() method calls Nornir functionality.
    • The job inputs data is passed to the InitNornir initializer. Because devices now exist in Nautobot, we use NautobotORMInventory. Nornir inventory plugin comes from nautobot-plugin-nornir.
    • Finally, all the platform-specific commands to run plus all the jpath post_processor information loaded from the platform-specific YAML files must be injected into the Nornir data object to be accessible later in the extract/transform functions.
  4. Within the code block of a Nornir with_processor context manager call the netmiko_send_commands Nornir task.
    • Access the loaded platform-specific YAML data and deduplicate commands to avoid running the same command multiple times; e.g., multiple required data attributes come from the same Show command.
  5. Utilize native Nornir Processor to overload functionality on subtask_instance_completed() to run command outputs through extract and transformation functions.
    • This essentially is our “ET” portion of an “ETL” (Extract, Transform, Load) process.
    • Next, the JSON result from the show command after the parser executes, e.g., Textfsm, gets run through the jdiff function extract_data_from_json() with the data and the jpath from the YAML file definition.
    • Finally, an optional post_processor Jinja2-capable execution can further transform the data for that command before passing it to finish the SSoT synchronization.

Extending Platform Support

Adding support can be done by adding a file that parses data into the proper schema. There is a new Git datasource exposed that allows the included YAML files to be overwritten or new platform support to be added for maximum flexibility.

For simplicity, a merge was not implemented for the Git repository functionality. Any file loaded in from a Git repo is preferred. If a file in the repo exists that matches what the app exposes by default, e.g., cisco_ios.yml, the entire file from the repo becomes preferred. So keep in mind if you’re going to overload a platform exposed by the app, you must overload the full file! No merge will happen between two files that are named the same. Additionally, Git can be used to add new support. For example, if you have Aruba devices in your environment, and you want to add that functionality to device onboarding, this can be done with a custom YAML file. Simply create a Git repo and create the YAML file (name it aruba_osswitch.yml), and you’ve just added support for Aruba in your environment.

The filenames must be named <network_driver_name>.yml. See configured choices in the Nautobot UI under a platform definition.

Even better if you follow that up with a PR into the main application!

Conclusion

As the device onboarding application continues to mature, we expect to add further platform support to the defaults the app exposes. We hope the new DSL- and YAML-based extension framework makes it quick and easy to add support and load it in via Git.

Happy automating!

-Jeff, David, Susan

]]>
Jeff Kala, David Cates, Susan Hooks
Last Month in Nautobot - July 20242024-08-05T00:00:00+00:002024-08-05T00:00:00+00:00https://blog.networktocode.com/post/last-month-in-nautobot-2407Welcome 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

Nautobot v2.3.0 beta 1 released

The release of Nautobot v2.3.0 is right around the corner and we have released a beta for everyone to try out. If you’ve been waiting for any of the features listed below, please give this beta a spin and let us know on our Slack or GitHub if you have any feedback. Thanks!

  • Added an optional role field to Interface and VMInterface models
  • Cloud Models
  • Dynamic Group Enhancements
  • Object Metadata Models
  • Saved Views
  • Device Modules
  • Updated to Django 4.2
  • Log Cleanup as System Job

Releases - Stable

  • Nautobot: v2.2.8 - 2024-07-22
    • #5911 - Updated zipp to 3.19.1 to address CVE-2024-5569. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.
    • #5906 - Added support for filtering in GraphQL of objects identified by a many-to-many relation (Location.prefixes, Prefix.locations, etc.).
  • Nautobot: v2.2.7 - 2024-07-08
    • #5891 - Updated certifi to 2024.7.4 to address CVE-2024-39689. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.
    • #4237 - Fixed display issue with multiple tags filter on dynamic groups. Multiple Tags are now correctly displayed with an AND.

Releases - LTM 1.6

  • Nautobot: v1.6.26 - 2024-07-22
    • #5935 - Fixed issue in which a save() could be called unnecessarily on child devices.
  • Nautobot: v1.6.25 - 2024-07-09
    • #5891 - Updated certifi to 2024.7.4 to address CVE-2024-39689. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.

Apps Ecosystem

  • Pynautobot: v1.5.4 - 2024-07-23
    • Added Python 3.12 support.
  • Nautobot App SSoT: v2.7.0 - 2024-07-19
    • Fixed Duplicate IPAddress Loading in Infoblox.
    • Added Itential SSoT.
  • Pynautobot: v1.5.3 - 2024-07-18
    • Added python-pynautobot version to default headers.
  • Nautobot App Golden Config: v2.1.1 - 2024-07-17
    • Added support for Nautobot v2.3.0.
  • Nautobot App Floor Plan: v2.2.0 - 2024-07-16
    • #10 - Added the ability to assign RackGroups and Statuses to a group of tiles and place a Rack tile on top of those groups.
    • #12 - Added a Rack’s Tenant (and TenantGroup, if applicable) to Tiles and detail views.
    • #41 - Added shift key modifier to wheel zoom and updated text.
    • #93 - Fixed scaling issue for svg.
  • Pynautobot: v2.2.1 - 2024-07-15
    • Added Python 3.12 support.
  • Helm Charts: v2.1.3 - 2024-07-12
    • #412 Fixed unnecessary lifecycleHooks for Init Containers.
    • #345 Fixed Service’s target port when Nginx is enabled.
    • Upgraded Nautobot from 2.2.5 to 2.2.7.
  • Nautobot App Circuit Maintenance: v2.2.3 - 2024-07-05
    • #309 - Updated app config and urls to populate documentation link.

Community

Get in Touch!

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

]]>
Cristian Sirbu and Gary Snider
Last Month in Nautobot - June 20242024-07-03T00:00:00+00:002024-07-03T00:00:00+00:00https://blog.networktocode.com/post/last-month-in-nautobot-2406Welcome 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 App Device Onboarding Refactor

The Nautobot App Device Onboarding v4.0.0 release candidate has been published and we’re looking for feedback from the community. This version is a complete redesign of the app and it exposes two new Nautobot SSoT-based jobs. This first new job is called “Sync Devices From Network” and it mimics what the original onboarding task did, i.e., bare minimum creation of device, serial number, management IP, and interface. The second new job is called “Sync Network Data From Network” and it mimics what the NTC library network-importer does: syncs interfaces, their MTU, description, IP address, type, status, etc. A toggle option also exists to sync in VRFs, adding them to device interfaces, and VLANs (adding tagged and untagged VLANs to interfaces).

If you have any feedback, you can join us in the Network to Code Slack or open a discussion or issue on the GitHub repository page.

Nautobot Core

Releases - Stable

  • Nautobot: v2.2.6 - 2024-06-24
    • #5821 - Updated urllib3 to 2.2.2 due to CVE-2024-37891. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.
    • #5550 - Added support for specifying a tag or a commit hash as the Git repository branch value.
    • #5550 - Added an enabled flag to the JobButton class; disabled JobButtons will not appear in the UI.
    • #5807 - Added the ability to sort and filter the IPAddress list view by the nat_inside field.
    • Multiple Git repository fixes. See the release notes for more details.

Releases - LTM 1.6

  • Nautobot: v1.6.24 - 2024-06-24
    • #5821 - Updated urllib3 to 2.2.2 due to CVE-2024-37891. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.

Apps Ecosystem

  • Nautobot App Secrets Providers: v3.0.0 - 2024-06-28
    • Added support for the Azure Key Vault secrets provider.
    • All references to Thycotic were changed to Delinea. Be sure to update your app accordingly, including within PLUGINS_CONFIG in nautobot_config.py.
  • Nautobot App Device Onboarding: v4.0.0-rc.2 - 2024-06-27
    • Added Device type schema to support “integers” and “strings” as at times the model may be a stringified integer, like “2811”.
  • Nautobot App Device Onboarding: v4.0.0-rc.1 - 2024-06-11
    • Complete redesign. Added two new sync jobs.
  • Nautobot App Design Builder: v1.3.0 - 2024-06-07
    • Added a new mode that tracks the design deployment (lifecycle management)
    • Added optional data protection for data that has been created or modified by a design deployment.
  • Nautobot App Circuit Maintenance: v2.2.1 - 2024-06-04
  • Nautobot App Circuit Maintenance: v2.2.0 - 2024-06-04
    • #284 - Added feature to support Microsoft Exchange Web Services as an Email platform.

Community

Get in Touch!

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

]]>
Cristian Sirbu and Gary Snider
Last Month in Nautobot - May 20242024-06-05T00:00:00+00:002024-06-05T00:00:00+00:00https://blog.networktocode.com/post/last-month-in-nautobot-2405Welcome 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.2.5 - 2024-05-28
    • #5740 - Updated requests to 2.32.1 to address GHSA-9wx4-h78v-vm56. This is not a direct dependency, so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.
    • #5757 - Fixed missing member object permission enforcement (e.g., enforce Device permissions for a Dynamic Group containing Devices) when viewing Dynamic Group member objects in the UI or REST API (GHSA-qmjf-wc2h-6x3q).
    • #5690 - Removed deprecated CustomFieldFilterForm alias of CustomFieldModelFilterFormMixin, as this would have caused confusion with the newly added CustomFieldFilterForm class providing filtering support for the Custom Fields list view.
    • Multiple other various bug fixes and enhancements
  • Nautobot: v2.2.4 - 2024-05-13
    • #1858 - Added sanitization of HTML tags in the content of BANNER_TOP, BANNER_BOTTOM, and BANNER_LOGIN configuration to prevent potential injection of malicious scripts (stored XSS) via these features (GHSA-r2hr-4v48-fjv3).
    • #5672 - Updated Jinja2 dependency to 3.1.4 to address CVE-2024-34064.
    • #1858 - Added support in BRANDING_FILEPATHS configuration to specify a custom css and/or javascript file to be added to Nautobot page content.
    • #1858 - Added Markdown support to the BANNER_TOP, BANNER_BOTTOM, and BANNER_LOGIN configuration settings.
    • #4986 - Fixed inconsistent active tab in several views.
    • #5644 - Made the uniqueness constraints between the ContactAssociation model and the related API serializer consistent.
    • #5684 - Fixed standard CSV export when using export templates.
    • #5689 - Fixed change logging for bulk delete operations so that user is included in the log.

Releases - LTM 1.6

  • Nautobot: v1.6.23 - 2024-05-28
    • #5740 - Updated requests to 2.32.1 to address GHSA-9wx4-h78v-vm56. This is not a direct dependency so it will not auto-update when upgrading Nautobot. Please be sure to update your local environment.
    • #5762 - Fixed missing member object permission enforcement (e.g., enforce Device permissions for a Dynamic Group containing Devices) when viewing Dynamic Group member objects in the UI or REST API (GHSA-qmjf-wc2h-6x3q).
  • Nautobot: v1.6.22 - 2024-05-13
    • #1858 - Added sanitization of HTML tags in the content of BANNER_TOP, BANNER_BOTTOM, and BANNER_LOGIN configuration to prevent potential injection of malicious scripts (stored XSS) via these features (GHSA-r2hr-4v48-fjv3).
    • #1858 - Added support in BRANDING_FILEPATHS configuration to specify a custom css and/or javascript file to be added to Nautobot page content.
    • #1858 - Added Markdown support to the BANNER_TOP, BANNER_BOTTOM, and BANNER_LOGIN configuration settings.
    • #2974 - Fixed an error when deleting and then re-creating a GitRepository that provides Jobs.
  • Nautobot: v1.6.21 - 2024-05-07
    • #5521 - Updated Pillow, social-auth-app-django, and Jinja2 to address CVEs.
    • #5561 - Updated idna to 3.7 due to CVE-2024-3651. This is not a direct dependency, so it will not auto-update when upgrading. Please be sure to upgrade your local environment.

Apps Ecosystem

Community

Get in Touch!

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

]]>
Cristian Sirbu and Gary Snider
Last Month in Nautobot - April 20242024-05-03T00:00:00+00:002024-05-03T00:00:00+00:00https://blog.networktocode.com/post/last-month-in-nautobot-2404Welcome 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.

New Nautobot Book Announced

The Nautobot book, Network Automation with Nautobot: Adopt a network source of truth and a data-driven approach to networking, is now available for preorder. For more information, including where to place your preorder, take a look at the blog post.

Nautobot Core

Releases - Stable

  • Nautobot: v2.2.3 - 2024-04-30
    • #2946 - Added custom link support for interfaces, console ports, console server ports, power ports, power outlets, front ports, rear ports, device bays, and inventory items.
    • #5034 - Added a view to convert location contact information to contacts or teams.
    • #5537 - Re-added run_job generic Celery task as a wrapper for execution of all Nautobot Jobs.
  • Nautobot: v2.2.2 - 2024-04-18
    • #2459 - Improved performance of bulk-edit and bulk-delete UI operations by refactoring change logging logic.
  • Nautobot: v2.2.1 - 2024-04-15
    • #5493 - Added a configuration setting METRICS_DISABLED_APPS to disable app metrics for specific apps.
    • #5521 - Updated most dependencies to the latest versions available as of 2024-04-01.

Releases - LTM 1.6

Apps Ecosystem

Community

Get in Touch!

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

]]>
Cristian Sirbu and Gary Snider
New Book Announcement—Network Automation with Nautobot2024-04-17T00:00:00+00:002024-04-17T00:00:00+00:00https://blog.networktocode.com/post/new-book-announcement-network-automation-with-nautobotOver seven years ago, I had the opportunity to cowrite what would be the first book on network automation. It was an amazing experience getting to share and do what was needed to move the industry forward. The book no doubt has helped many organizations on their network automation journey and many individuals in their career progression. It is still humbling to see by the day. For those tracking, the second edition of Network Programmability & Automation was released last year too!

Fast forward to today: I am humbled and pleased to announce another book! In partnership with Glenn Matthews, Josh VanDeraa, Ken Celenza, John Anderson, Brad Haas, Christian Adell, Bryan Culver, Gary Snider and technical reviewers Tim Fiola, Cristian Sirbu, and Eric Chou, we and everyone at NTC are delighted to announce Network Automation with Nautobot: Adopt a network source of truth and a data-driven approach to networking.

Cover of the Network Automation with Nautobot book

With the advent of artificial intelligence, there is nothing more important than for enterprises to have quality data that can be trusted and acted upon to drive automation and future generative AI applications. Nautobot is the open source data platform for networking. Full stop.

Three years ago, we forked NetBox and launched the Nautobot project because we saw the gap in the market. There was no platform or company that saw the relationship between data and automation—and treated both as first-class citizens. And now, over the last three years, we’ve deployed Nautobot at some of the world’s largest organizations across verticals, from enterprise financials and higher education institutions to high-growth tech companies and government entities. And we’ve done it together with a welcoming community, transparent and in the open, while creating over two dozen Nautobot Apps (all open source, by the way). We even launched Nautobot Cloud for those organizations that don’t want to deal with the hassle of managing applications and want the elasticity of cloud.

We’ve seen firsthand what works and doesn’t work and where people spend time learning. While Nautobot is an open source project and docs are publicly available, we knew we needed to share even more about how Nautobot can be used as a Network Source of Truth and automation platform to transform those teams that have been stuck doing network management the way they’ve done it for years.

In the book, you’ll learn how to deploy, manage, and integrate Nautobot as a Source of Truth and network automation platform by better understanding the relationship between data and automation. By the end, you’ll be able to design and manage Nautobot deployments, understand its key features, and extend them by creating custom data models and apps that suit your network and your team.

The book is broken down into 4 major parts with 16 chapters and 3 more appendixes.

  • Part One: Introduction to Source of Truth and Nautobot
  • Part Two: Getting Started with Nautobot
  • Part Three: Network Automation with Nautobot
  • Part Four: Nautobot Apps
  • Appendix 1: Nautobot Architecture Deep Dive
  • Appendix 2: Integrating Distributed Data Sources of Truth with Nautobot
  • Appendix 3: Performing Config Compliance & Remediation with Nautobot

We want as many teams as possible to have the knowledge and skills necessary to build a strong foundation for a network automation stack.

The book takes you on the Nautobot journey, starting with understanding the problems around network automation, data, and Source of Truth. It then reviews navigating the UI and its extensibility features. From there, we dive into all of the automation goodness, looking at its APIs, Ansible collection, pynautobot, and later looking at network automation architectures powered by Nautobot. Finally, we have several chapters dedicated to developing Nautobot Apps. From there, we have great reading in the appendixes, diving into the Nautobot architecture and then into two of the most popular Nautobot Apps: Single Source of Truth (SSoT) and Golden Config (which performs configuration compliance and remediation).

One of the book’s main points is that non-technical skills, such as an understanding of the value of data, are crucial when deploying network automation. But the right technical skills are important too. We wrote the book under the assumption that readers would have some background knowledge about network automation, such as familiarity with using Python or Ansible, plus knowledge of networking. As long as you have one to three years of networking experience and six to twelve months of using Python or Ansible, you’ll be sure to get value from the book on your network automation journey.

The book will be published by Packt, and we are targeting a May ship date. You can find it on Packtpub and Amazon.

Thank you to everyone who has helped make Nautobot a success over the last few years. The ecosystem around Nautobot continues to grow by the day and we have even more in store from here on out! Onward and upward.

Happy automating,

–Jason

]]>
Jason Edelman
Unlocking the Power of Network Automation—How Large Enterprises Can Stay Ahead2024-04-10T00:00:00+00:002024-04-10T00:00:00+00:00https://blog.networktocode.com/post/unlocking-the-power-of-network-automation-how-large-enterprises-stay-aheadIn today’s digital transformation era, traditional manual network management processes fall short in managing the complexity and scale of modern networks.

Particularly for large enterprises operating expansive networks across multiple locations and serving vast user bases, automation presents a critical advantage.

Why? Because it offers a streamlined and efficient approach to network configuration, monitoring, and troubleshooting. Automation of repetitive tasks through intelligent algorithms not only enhances network reliability and operational efficiency but also frees up IT teams to concentrate on strategic initiatives, thus adding significant value to business operations.

The Value of Network Automation for Large Enterprises

Network automation is not just a luxury for large enterprises; it has become a necessity. With the ever-increasing demand for seamless connectivity to a growing number of users and devices, these organizations cannot afford unreliable networks, downtime, or delays in implementing changes. By automating network configuration and management, large enterprises can ensure faster provisioning, reduce human errors, and enhance overall performance.

Moreover, network automation enables large enterprises to adapt quickly to changing business needs. As new services and applications are introduced, network infrastructure must be agile enough to support them. Manual configuration processes can be time-consuming and error-prone, leading to delays in service deployment. With network automation, large enterprises can respond to business requirements promptly, gaining a competitive edge in the market.

Network automation is not just a buzzword; it is a growing trend in the industry. According to a recent Gartner study, a growing percentage of large enterprises now automate more than half of their network activities, reflecting a robust trend toward embracing automation technology.

One of the key drivers behind this trend is the increasing complexity of networks. As networks become more distributed and hybrid in nature, the inefficiency of manual management becomes a significant obstacle. Network automation provides a centralized and standardized approach to network configuration and monitoring, simplifying operations and improving overall network performance.

Understanding the Role of Network Source of Truth in Automation

In network automation, the concept of a network source of truth plays a crucial role. It refers to a centralized repository or database that holds accurate and up-to-date information about the network infrastructure. This source of truth serves as a single reference point for network engineers and automation tools, ensuring consistency and accuracy in network configurations.

Network Architecture

By having a reliable source of truth, large enterprises can avoid configuration conflicts and minimize the risk of network outages. Network changes automatically synchronize with the source of truth, ensuring it remains the authoritative record of the network state. This not only simplifies troubleshooting but also enables efficient network auditing and compliance management.

Introducing Nautobot: A Powerful Network Automation Tool

Selecting the right tool is pivotal for network automation success. Among the leading solutions is Nautobot, an open source platform that has become a favorite among large enterprises for its robust capabilities in network management. It provides an excellent framework for managing network infrastructure, from device configuration to IP address management.

Nautobot offers a wide range of features that make network automation a breeze. It allows for the creation of standardized network templates, enabling consistent and error-free network configurations. With its intuitive user interface, network engineers can easily visualize and manage network devices, interfaces, and connections. Nautobot also integrates seamlessly with other automation tools and platforms, making it a versatile choice for large enterprises.

The Benefits of Using Nautobot for Large Enterprises

By using Nautobot for network automation, large organizations can more quickly provision and deploy network services. By automating the configuration process, network engineers can save valuable time and effort, allowing for rapid service delivery.

Nautobot also enhances network reliability and stability. With its centralized source of truth and standardized templates, it minimizes configuration errors and reduces the risk of network outages. This translates into improved user experience and increased customer satisfaction.

Additionally, Nautobot provides a scalable and flexible solution for large enterprises. As network infrastructure grows and evolves, Nautobot can easily adapt to accommodate new devices and technologies. Its modular architecture allows for seamless integration with existing systems, ensuring a smooth transition to network automation.

Calculating the ROI of Network Automation

Although implementing network automation demands substantial time, resources, and budget, the long-term ROI justifies the initial investment. To justify this investment, large enterprises need to calculate the return on investment (ROI) of network automation.

While the benefits of network automation are evident, quantifying the financial impact can help organizations make informed decisions.

Multi-Project ROI

By automating manual tasks, large enterprises can benefit in multiple ways:

  • Reduce labor costs and minimize human errors, resulting in significant cost savings
  • Focus on strategic initiatives, driving innovation and improving overall productivity
  • Provide faster response times, reduce network downtime, and deliver better quality services to end users
  • Increase customer satisfaction and loyalty, strengthening business outcomes

Best Practices for Implementing Network Automation in Large Enterprises

Implementing network automation in large enterprises requires careful planning and execution. Here are some best practices to consider:

  1. Start small, but think big. Begin by automating a few processes or tasks before scaling up. Starting with reporting or data sync tasks before impacting actual network operations is also a smart initial step. This allows time for learning and practice with the tools and concepts, creates a gradual transition, and minimizes disruption to existing operations.
  2. Involve stakeholders. Engage key stakeholders, including network engineers, IT teams, and business leaders, early in the process. Their input and support are crucial for successful implementation.
  3. Invest in training and upskilling. Network automation requires a new set of skills and knowledge. Provide training and resources to equip your IT teams with the necessary expertise to leverage automation tools effectively.
  4. Establish clear goals and metrics. Define clear objectives and key performance indicators for network automation. Regularly measure and track progress to ensure alignment with business goals.
  5. Leverage vendor support. Seek assistance from automation tool vendors or consultants who specialize in network automation. Their expertise can help streamline the implementation process and address any challenges.

Training and Resources for Network Automation

Various training and resources are available to empower large enterprises to adopt network automation.

Online courses, certifications, and workshops provide valuable insights into network automation best practices, tools, and implementation strategies. Additionally, vendor documentation, forums, and user communities offer a wealth of knowledge and support for those starting their network automation journey.

By investing in training and leveraging available resources, large enterprises can equip their IT teams with the necessary skills and knowledge to drive successful network automation initiatives.

Embracing the Future with Network Automation

Network automation is no longer a distant dream; it is the present and future of network management. Large enterprises cannot afford to overlook the benefits it brings in terms of efficiency, reliability, and scalability. By embracing network automation, these organizations can stay ahead of the competition, deliver better services to their customers, and achieve long-term success.

With tools such as Nautobot and a strategic approach to implementation, large enterprises can unlock the full potential of network automation. By investing in training and resources, organizations can empower their IT teams to become automation champions, driving innovation and transforming the way networks are managed.

Start harnessing the power of network automation today and unlock limitless possibilities for your large enterprise. Contact us to discover how our solutions can transform the way to build, manage, and operate your network.

Ready to take your network automation journey to the next level? Explore Nautobot and start streamlining your network operations today.

-Chris Murray

]]>
Chris Murray