Most ebook files are in PDF format, so you can easily read them using various software such as Foxit Reader or directly on the Google Chrome browser.
Some ebook files are released by publishers in other formats such as .awz, .mobi, .epub, .fb2, etc. You may need to install specific software to read these formats on mobile/PC, such as Calibre.
Please read the tutorial at this link: https://ebookbell.com/faq
We offer FREE conversion to the popular formats you request; however, this may take some time. Therefore, right after payment, please email us, and we will try to provide the service as quickly as possible.
For some exceptional file formats or broken links (if any), please refrain from opening any disputes. Instead, email us first, and we will try to assist within a maximum of 6 hours.
EbookBell Team
4.3
68 reviewsISBN 10: 1837637865
ISBN 13: 9781837637867
Author: Jason Edelman
Transform the way your network teams think about and deploy enterprise network automation through the power of Nautobot's open-source platform
Key Features
Learn how documenting your network in Nautobot can accelerate your network automation journey
Apply NetDevOps to your network by leveraging Nautobot as a network source of truth
Minimize tool sprawl by extending, using, or building Nautobot Apps
Purchase of the print or Kindle book includes a free PDF eBook
Book Description
Nautobot enables network teams to build a scalable and extensible network source of truth that provides a foundation to power any network automation stack. With the help of this guide, you’ll learn how to deploy, manage, and integrate Nautobot as a source of truth and network automation platform. As you progress, you’ll learn what a network source of truth is, the relationship between data and network automation, and network data models. You’ll also gain a broad understanding of Nautobot and its robust features that allow maximum flexibility. A dedicated section will show you how to construct a single source of truth with Nautobot and help you explore its programmatic APIs, including REST APIs, GraphQL, webhooks, and Nautobot Job Hooks. Later, you’ll develop custom data models and custom apps for Nautobot and experience its extensibility and powerful developer API. In the last part of this book, you'll discover how to deploy configuration compliance and automated remediation once Nautobot is deployed as a network source of truth. By the end of this book, you’ll be able to design and manage Nautobot as a network source of truth, understand its key features, and extend Nautobot by creating custom data models and apps that suit your network and your team.
What you will learn
Understand network sources of truth and the role they play in network automation architecture
Gain an understanding of Nautobot as a network source and a network automation platform
Convert Python scripts to enable self-service Nautobot Jobs
Understand how YAML files in Git can be easily integrated into Nautobot
Get to grips with the NetDevOps ecosystem around Nautobot and its app ecosystem
Delve into popular Nautobot Apps including Single Source of Truth and Golden Config
Who this book is for
This book is for network engineers, network automation engineers, and software engineers looking to support their network teams by building custom Nautobot Apps. A basic understanding of networking (e.g. CCNA) and knowledge of the fundamentals of Linux, Python programming, Jinja2, YAML, and JSON are needed to get the most out of this book.
Part 1: Introduction to Source of Truth and Nautobot
Chapter 1: Introduction to Nautobot
Introduction to network automation
What is network automation?
Network automation use cases
Why automate your network?
Persona-driven network automation
Industry trends
Understanding SoT
Defining SoT
Approaches to SoT
SoT tools and products
Nautobot overview
Nautobot use cases
Network SoT
Network automation platform
Nautobot ecosystem
Summary
Chapter 2: Nautobot Data Models
Nautobot data models overview
Data model summary
Network device inventory data models
Devices
Device components
Device types
Manufacturer
Roles and statuses
Platform
Virtual chassis
Device redundancy groups
Interface redundancy groups
Racks
Locations
Location type
Tenants
IPAM data models
Namespaces
Prefixes
IP addresses
RIRs
VRFs
Route targets
VLANs and VLAN groups
Circuits data models
Circuits
Circuit terminations
Circuit types
Circuit providers
Provider networks
Data model extensibility
Custom fields
Computed fields
Relationships
Config contexts
Custom data models
Summary
Part 2: Getting Started with Nautobot
Chapter 3: Installing and Deploying Nautobot
Nautobot architecture overview
Installing Nautobot
Getting Nautobot up and ready on Ubuntu
Installing dependencies
Installing the Nautobot application
Launching Nautobot
Nautobot worker
Nautobot web service
Running Nautobot as Linux services
Loading data into Nautobot
Using the graphical user interface
Summary
Chapter 4: Understanding the User Interface and Bootstrapping Nautobot
Understanding the navigation and UI
Navigation menu
Nautobot home page and panels
Footer navigation
Table views
Detailed views
Managing inventory and bootstrapping your first installation
Identifying your data
Organizational data
Device data
Summary
Chapter 5: Configuring Nautobot Core Data Models
IP address management in Nautobot
IP addresses
Prefixes
Namespaces
VRFs
VLANs
RIRs
Configuring IP address management in Nautobot
IPAM configuration for Wayne Enterprises
Modeling HA and virtual devices
Device Redundancy Groups
Virtual chassis
Key differences between device redundancy and virtual chassis
Setting up a firewall redundancy group for Wayne Enterprises in Nautobot
Interface Redundancy Groups
Cabling and power management
Cables
Incorporating power management with cabling
Power panels
Power feeds
Understanding the blast radius through comprehensive data
Secrets management
Why use secrets?
Core concepts
Secrets versus Secrets Groups in Nautobot
Security considerations
Accessing secrets in code
Nautobot Secrets Providers app (plugin) overview
Using Notes, Tags, Changelog, and Filter forms
Notes
Tags
Change log
Filter forms
Best practices for inventory management
Summary
Chapter 6: Using Nautobot’s Extensibility Features
Statuses
Managing statuses
Applying a status
Use cases for statuses
Best practices for statuses
Tags
Managing tags
Applying a tag
Use cases for tags
Best practices for tags
Custom fields
Managing custom fields
Diving into custom field attributes
Validation rules
Custom field choices
Applying a custom field
Use cases for custom fields
Best practices for custom fields
Computed fields
Managing and applying computed fields
Computed field template context
Use cases for computed fields
Best practices for computed fields
Custom links
Managing and applying custom links
Use cases for custom links
Best practices for custom links
Export templates
Default export templates
Use cases for export templates
Managing and applying export templates
Best practices for export templates
Config contexts
Exploring the config context hierarchy
Managing and applying config contexts
Use cases for config contexts
Config context schemas
Git as a data source
Managing and applying Git data sources
Use cases for data sources
Best practices for data sources
Relationships
Use cases for relationships
Managing and applying relationships
Creating a relationship
Dynamic groups
Use cases for dynamic groups
Managing and applying dynamic groups
Best practices for dynamic groups
Summary
Chapter 7: Managing and Administering Nautobot
Administration with the Admin UI
User, group, and permissions management
Groups
Users
Permissions enforcement
Exploring Nautobot’s settings
Understanding setting precedence
Setting banner and support messages
Adding your company’s logos and branding
Customizing pagination
Preferred primary IP version
Handling logs
Customizing sanitizer patterns
Common settings
Advanced settings
Setting up and using NAPALM integration
Exploring nautobot-server CLI commands
Creating a superuser account
Exporting and importing data
Cleaning up old scheduled jobs
Retracing corrupted/missing cable paths
Getting help
Exploring the Nautobot Shell
Working with objects
Monitoring Nautobot metrics
Upgrading Nautobot
Troubleshooting Nautobot
Performing a health check
Troubleshooting the configuration
Debugging Nautobot
Summary
Part 3: Network Automation with Nautobot
Chapter 8: Learning about Nautobot APIs – REST, GraphQL, and Webhooks
Technical requirements
Nautobot REST APIs
Nautobot’s interactive API documentation
Understanding Nautobot APIs
API authentication
Using the API with Python
API tips
pynautobot
GraphQL with Nautobot
GraphQL primer
GraphiQL
GraphQL queries with Python
GraphQL versus REST
Webhooks
Exploring webhooks
Example – using a Webhook to trigger an Ansible AWX playbook
Summary
Chapter 9: Understanding Nautobot Integrations for NetDevOps Pipelines
Technical requirements
Exploring pynautobot
Installing pynautobot
Getting started
Retrieving objects
Updating an object
Deleting an object
Creating an object
Working with Nautobot Apps
Using GraphQL with pynautobot
Using pynautobot to get the next available IP address
Exploring the Nautobot Ansible Collection
Installing the collection
Reading data with Ansible
Ansible write operations
Exploring Ansible inventory sources
Using Nornir Nautobot
Installing Nornir Nautobot
Exploring Nautobot Docker containers
Exploring the Nautobot Go library
Introducing the Nautobot Terraform provider
Summary
Chapter 10: Embracing Infrastructure as Code with Nautobot, Git, and Ansible
Technical requirements
Setting up the environment
Network topology
Linux host
Ansible
Nautobot
The book’s Git repo
Adding data to Nautobot with Ansible
Setting up a dynamic inventory
Backing up network devices
Performing a config replace with Nautobot, NAPALM, and Ansible on Arista and Juniper devices
Performing config changes with Nautobot and Ansible for Cisco IOS devices
Performing config changes with Nautobot and Ansible for Cisco NX-OS devices
Managing data with config contexts and using Git
Nautobot jobs versus Ansible playbooks
Summary
Chapter 11: Automating Networks with Nautobot Jobs
Technical requirements
Nautobot Jobs overview
Introduction to the Django ORM
Learning about the Nautobot Shell and ORM
Reading data
Adding and updating data
Deleting data
Adding Jobs to Nautobot
Synchronizing Jobs into Nautobot from a Git repository
Distributing Jobs as part of a Nautobot app
Mounting or placing Jobs directly in JOBS_ROOT
Creating your first Nautobot Job
“Hello World” Nautobot Job
Breaking down and building a Nautobot Job
Adding dynamic dropdowns to your job
Using Jobs to populate data in Nautobot
Converting Python scripts into Nautobot Jobs
Diving into even more Job features
Job buttons
Job Hooks
Job scheduling
Job approvals
The Jobs API
Job permissions
Summary
Chapter 12: Data-Driven Network Automation Architecture
Data-driven network automation architecture
Evolution of managed networks
Manually managed networks
Power tool automated networks
Legacy and domain network management managed networks
Infrastructure as Code (IaC) automated networks
Nautobot automated networks
SoT with Nautobot
Integrations and extensibility
SoT life cycle
Nautobot enablers for SoT
Automation and orchestration
Understanding workflows
Nautobot enablers for automation and orchestration
APIs – REST, GraphQL, and Webhooks
Modern network monitoring – telemetry and observability
Data enrichment
Data normalization
Data collection
Closed loop network automation
User interactions
Summary
Part 4: Nautobot Apps
Chapter 13: Learning about the Nautobot App Ecosystem
Nautobot Apps overview
Why Nautobot Apps?
Flexibility
Access to SoT data
Accelerated development
Reduced tool sprawl
Nautobot Apps ecosystem
Golden Config
Nornir
Device Onboarding app
Device Lifecycle Management (DLM)
Data Validation Engine
Single Source of Truth (SSoT)
Network data models
Design Builder app
Circuit Maintenance app
Secrets Providers app
Floor Plan app
ChatOps
Welcome Wizard app
What’s possible with Nautobot Apps?
Creating data models
Creating APIs
Creating UI elements to enhance the user experience
Distributing jobs
Creating network automation solutions
Nautobot Apps administration
Installing Nautobot Apps
Uninstalling Nautobot Apps
Summary
Chapter 14: Intro to Nautobot App Development
Setting up your system for Nautobot App development
Installing Docker
Installing Python 3, Pip, Cookiecutter, and Poetry
Starting a Nautobot App with Cookiecutter
Exploring the App structure
Exploring pyproject.toml
Post-Cookiecutter tasks and Poetry
Introducing Invoke
Building the Docker image
Defining credentials
Running Nautobot
Exploring the Nautobot Developer API
Configuring a Nautobot App
Extending the existing Nautobot UI
Extending core functionality
Adding entirely new functionality
Summary
Chapter 15: Building Nautobot Data Models
A real-world use case for custom Apps
Data model design
Gathering representative data and requirements
Considering composability, reusability, and deduplication of data
Considering built-in Nautobot extensibility features
When the data model suggests you should build an App
Building an App around existing data models
Data model based on extensibility features
Adding an ACL overview to the Device detail view
Adding ACL details as a Device tab
Adding a new Devices/ACLs view
Implementing the data table
Adding ACL details as a REST API endpoint
Review
Building an App with custom data models
Designing the ACL data models
Implementing the ACL data models
Implementing the REST API
Implementing the UI
Exercises or next steps
Summary
Chapter 16: Automating with Nautobot Apps
A real-world use case for network automation in a Nautobot app
Design requirements
Building an App for network automation
Rendering IP ACL config using Jinja2
Writing a job to push config to a device using Netmiko
Preparing the device and related data in Nautobot
Running the job
Adding a job button to enable one-click configuration
Next steps on your journey
Summary
Appendix 1: Nautobot Architecture
Nautobot components and services
Database: PostgreSQL or MySQL
In-memory data store: Redis
In-Memory Data Store High-Availability: Redis Sentinel
Job execution: Celery Worker(s)
Job queues: Celery task queues
Job scheduler: Celery Beat
Web server: uWSGI
Appendix 2: Integrating Distributed Data Sources of Truth with Nautobot
Understanding distributed data sources
Challenges of distributed data
Benefits of aggregating data
Approaches to distributed data management
Exploring the Nautobot SSoT framework
Getting started with the Nautobot SSoT framework
Existing SSoT integrations
Building your own SSoT integration
Defining the data model mappings
Creating a data sync job
Using the custom SSoT job
Appendix 3: Performing Config Compliance and Remediation with Nautobot
Why Golden Config
Golden Config design
Golden Config use cases
Performing Config backups
Generating intended configurations
Performing config compliance
Automating config remediation and deployments
Best practices and tips
Index
Why subscribe?
Other Books You May Enjoy
Packt is searching for authors like you
Share your thoughts
Download a free PDF copy of this book
Tags: Jason Edelman, Network, Automation