Network Automation with Nautobot: Adopt a network source of truth and a data-driven approach to networking / Автоматизация сети с помощью Autobot: Внедрите сетевой источник информации и основанный на данных подход к созданию сетей. Год издания: 2024 Автор: Edelman Jason and others / Эдельман Джейсон и другие Издательство: Packt Publishing ISBN: 978-1-83763-786-7 Язык: Английский Формат: PDF/EPUB Качество: Издательский макет или текст (eBook) Интерактивное оглавление: Да Количество страниц: 816 Описание: 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. Измените представление ваших сетевых команд об автоматизации корпоративных сетей и внедряйте ее с помощью платформы с открытым исходным кодом Nautobot Kлючевые функции Узнайте, как документирование вашей сети в Nautobot может ускорить процесс автоматизации сети Примените NetDevOps к своей сети, используя Nautobot в качестве сетевого источника информации Сократите количество инструментов за счет расширения, использования или создания приложений Nautobot При покупке книги для печати или Kindle Book предоставляется бесплатная электронная книга в формате PDF Описание книги Nautobot позволяет сетевым командам создавать масштабируемый и расширяемый сетевой источник достоверности, который обеспечивает основу для работы любого стека сетевой автоматизации. С помощью этого руководства вы узнаете, как развертывать, управлять и интегрировать Nautobot в качестве платформы для сбора достоверной информации и сетевой автоматизации. По мере продвижения вы узнаете, что такое сетевой источник достоверной информации, взаимосвязь между данными и сетевой автоматизацией, а также модели сетевых данных. Вы также получите общее представление о Nautobot и его надежных функциях, обеспечивающих максимальную гибкость. В специальном разделе мы покажем вам, как создать единый источник достоверности с помощью Nautobot, и поможем изучить его программные API, включая REST API, GraphQL, webhooks и перехватчики заданий Nautobot. Позже вы разработаете пользовательские модели данных и приложения для Nautobot и познакомитесь с его расширяемостью и мощным API для разработчиков. В последней части этой книги вы узнаете, как обеспечить соответствие конфигурации и автоматическое исправление ошибок после того, как Nautobot будет развернут в качестве сетевого источника достоверной информации. Прочитав эту книгу, вы научитесь проектировать Nautobot как сетевой источник информации и управлять им, разберетесь в его ключевых функциях и расширите возможности Nautobot, создав пользовательские модели данных и приложения, подходящие для вашей сети и вашей команды. Что вы узнаете Разберитесь с сетевыми источниками информации и той ролью, которую они играют в архитектуре сетевой автоматизации Получите представление о Nautobot как о сетевом источнике и платформе сетевой автоматизации Преобразуйте скрипты Python для обеспечения работы Nautobot с самообслуживанием Поймите, как файлы YAML в Git могут быть легко интегрированы в Nautobot Познакомьтесь с экосистемой NetDevOps, основанной на Nautobot, и экосистемой его приложений Ознакомьтесь с популярными приложениями Nautobot, включая Single Source of Truth и Golden Config Для кого предназначена эта книга Эта книга предназначена для сетевых инженеров, инженеров по автоматизации сетей и разработчиков программного обеспечения, которые хотят поддержать свои сетевые команды путем создания пользовательских приложений Nautobot. Чтобы извлечь максимальную пользу из этой книги, необходимы базовые знания в области сетевого взаимодействия (например, CCNA) и знание основ Linux, программирования на Python, Jinja2, YAML и JSON.
Примеры страниц (скриншоты)
Оглавление
Preface xix Part 1: Introduction to Source of Truth and Nautobot 1 Introduction to Nautobot 3 Introduction to network automation 3 What is network automation? 4 Network automation use cases 5 Why automate your network? 7 Persona-driven network automation 9 Industry trends 10 Understanding SoT 13 Defining SoT 15 Approaches to SoT 17 SoT tools and products 18 Nautobot overview 19 Nautobot use cases 20 Network SoT 20 Network automation platform 23 Nautobot ecosystem 26 Summary 28 2 Nautobot Data Models 29 Nautobot data models overview 30 Data model summary 30 Network device inventory data models 31 Devices 31 Device components 32 Device types 40 Manufacturer 42 Roles and statuses 42 Platform 43 Virtual chassis 43 Device redundancy groups 43 Interface redundancy groups 44 Racks 45 Locations 47 Location type 48 Tenants 49 IPAM data models 49 Namespaces 50 Prefixes 51 IP addresses 52 RIRs 53 VRFs 53 Route targets 54 VLANs and VLAN groups 54 Circuits data models 54 Circuits 55 Circuit terminations 56 Circuit types 57 Circuit providers 57 Provider networks 58 Data model extensibility 58 Custom fields 59 Computed fields 60 Relationships 62 Config contexts 63 Custom data models 64 Summary 64 Part 2: Getting Started with Nautobot 3 Installing and Deploying Nautobot 67 Nautobot architecture overview 68 Installing Nautobot 69 Getting Nautobot up and ready on Ubuntu 70 Installing dependencies 70 Installing the Nautobot application 74 Launching Nautobot 79 Nautobot worker 84 Nautobot web service 86 Running Nautobot as Linux services 88 Loading data into Nautobot 93 Using the graphical user interface 94 Summary 105 4 Understanding the User Interface and Bootstrapping Nautobot 107 Understanding the navigation and UI 108 Navigation menu 108 Nautobot home page and panels 111 Footer navigation 118 Table views 122 Detailed views 127 Managing inventory and bootstrapping your first installation 128 Identifying your data 129 Organizational data 129 Device data 139 Summary 145 5 Configuring Nautobot Core Data Models 147 IP address management in Nautobot 147 IP addresses 148 Prefixes 149 Namespaces 149 VRFs 149 VLANs 149 RIRs 149 Configuring IP address management in Nautobot 150 IPAM configuration for Wayne Enterprises 151 Modeling HA and virtual devices 156 Device Redundancy Groups 157 Virtual chassis 158 Key differences between device redundancy and virtual chassis 159 Setting up a firewall redundancy group for Wayne Enterprises in Nautobot 160 Interface Redundancy Groups 163 Cabling and power management 163 Cables 164 Incorporating power management with cabling 166 Power panels 167 Power feeds 167 Understanding the blast radius through comprehensive data 169 Secrets management 170 Why use secrets? 170 Core concepts 170 Secrets versus Secrets Groups in Nautobot 170 Security considerations 174 Accessing secrets in code 174 Nautobot Secrets Providers app (plugin) overview 175 Using Notes, Tags, Changelog, and Filter forms 176 Notes 177 Tags 178 Change log 179 Filter forms 182 Best practices for inventory management 184 Summary 186 6 Using Nautobot’s Extensibility Features 187 Statuses 188 Managing statuses 189 Applying a status 191 Use cases for statuses 192 Best practices for statuses 193 Tags 193 Managing tags 194 Applying a tag 196 Use cases for tags 196 Best practices for tags 198 Custom fields 198 Managing custom fields 200 Diving into custom field attributes 200 Validation rules 203 Custom field choices 203 Applying a custom field 206 Use cases for custom fields 206 Best practices for custom fields 208 Computed fields 208 Managing and applying computed fields 209 Computed field template context 210 Use cases for computed fields 212 Best practices for computed fields 213 Custom links 213 Managing and applying custom links 214 Use cases for custom links 219 Best practices for custom links 219 Export templates 219 Default export templates 219 Use cases for export templates 221 Managing and applying export templates 221 Best practices for export templates 224 Config contexts 224 Exploring the config context hierarchy 226 Managing and applying config contexts 227 Use cases for config contexts 232 Config context schemas 232 Git as a data source 235 Managing and applying Git data sources 235 Use cases for data sources 238 Best practices for data sources 239 Relationships 239 Use cases for relationships 239 Managing and applying relationships 240 Creating a relationship 244 Dynamic groups 247 Use cases for dynamic groups 247 Managing and applying dynamic groups 248 Best practices for dynamic groups 251 Summary 251 7 Managing and Administering Nautobot 253 Administration with the Admin UI 253 User, group, and permissions management 256 Groups 257 Users 258 Permissions enforcement 261 Exploring Nautobot’s settings 273 Understanding setting precedence 273 Setting banner and support messages 274 Adding your company’s logos and branding 278 Customizing pagination 285 Preferred primary IP version 286 Handling logs 288 Customizing sanitizer patterns 289 Common settings 290 Advanced settings 290 Setting up and using NAPALM integration 291 Exploring nautobot-server CLI commands 295 Creating a superuser account 295 Exporting and importing data 296 Cleaning up old scheduled jobs 296 Retracing corrupted/missing cable paths 297 Getting help 297 Exploring the Nautobot Shell 297 Working with objects 298 Monitoring Nautobot metrics 299 Upgrading Nautobot 300 Troubleshooting Nautobot 303 Performing a health check 303 Troubleshooting the configuration 304 Debugging Nautobot 304 Summary 307 Part 3: Network Automation with Nautobot 8 Learning about Nautobot APIs – REST, GraphQL, and Webhooks 311 Technical requirements 312 Nautobot REST APIs 312 Nautobot’s interactive API documentation 312 Understanding Nautobot APIs 319 API authentication 324 Using the API with Python 326 API tips 341 pynautobot 346 GraphQL with Nautobot 346 GraphQL primer 346 GraphiQL 347 GraphQL queries with Python 358 GraphQL versus REST 363 Webhooks 364 Exploring webhooks 364 Example – using a Webhook to trigger an Ansible AWX playbook 365 Summary 370 9 Understanding Nautobot Integrations for NetDevOps Pipelines 371 Technical requirements 371 Exploring pynautobot 372 Installing pynautobot 372 Getting started 373 Retrieving objects 374 Updating an object 386 Deleting an object 389 Creating an object 389 Working with Nautobot Apps 390 Using GraphQL with pynautobot 392 Using pynautobot to get the next available IP address 393 Exploring the Nautobot Ansible Collection 396 Installing the collection 398 Reading data with Ansible 399 Ansible write operations 402 Exploring Ansible inventory sources 404 Using Nornir Nautobot 412 Installing Nornir Nautobot 412 Exploring Nautobot Docker containers 415 Exploring the Nautobot Go library 418 Introducing the Nautobot Terraform provider 421 Summary 421 10 Embracing Infrastructure as Code with Nautobot, Git, and Ansible 423 Technical requirements 423 Setting up the environment 424 Network topology 424 Linux host 426 Ansible 426 Nautobot 427 The book’s Git repo 431 Adding data to Nautobot with Ansible 432 Setting up a dynamic inventory 435 Backing up network devices 437 Performing a config replace with Nautobot, NAPALM, and Ansible on Arista and Juniper devices 438 Performing config changes with Nautobot and Ansible for Cisco IOS devices 440 Performing config changes with Nautobot and Ansible for Cisco NXOS devices 449 Managing data with config contexts and using Git 450 Nautobot jobs versus Ansible playbooks 451 Summary 452 11 Automating Networks with Nautobot Jobs 453 Technical requirements 453 Nautobot Jobs overview 454 Introduction to the Django ORM 454 Learning about the Nautobot Shell and ORM 456 Reading data 458 Adding and updating data 461 Deleting data 466 Adding Jobs to Nautobot 466 Synchronizing Jobs into Nautobot from a Git repository 467 Distributing Jobs as part of a Nautobot app 467 Mounting or placing Jobs directly in JOBS_ROOT 467 Creating your first Nautobot Job 467 “Hello World” Nautobot Job 468 Breaking down and building a Nautobot Job 475 Adding dynamic dropdowns to your job 481 Using Jobs to populate data in Nautobot 495 Converting Python scripts into Nautobot Jobs 496 Diving into even more Job features 499 Job buttons 499 Job Hooks 505 Job scheduling 507 Job approvals 509 The Jobs API 510 Job permissions 513 Summary 513 12 Data-Driven Network Automation Architecture 515 Data-driven network automation architecture 515 Evolution of managed networks 516 Manually managed networks 517 Power tool automated networks 517 Legacy and domain network management managed networks 517 Infrastructure as Code (IaC) automated networks 518 Nautobot automated networks 520 SoT with Nautobot 522 Integrations and extensibility 522 SoT life cycle 523 Nautobot enablers for SoT 524 Automation and orchestration 536 Understanding workflows 537 Nautobot enablers for automation and orchestration 541 APIs – REST, GraphQL, and Webhooks 541 Modern network monitoring – telemetry and observability 542 Data enrichment 543 Data normalization 544 Data collection 544 Closed loop network automation 545 User interactions 546 Summary 547 Part 4: Nautobot Apps 13 Learning about the Nautobot App Ecosystem 551 Nautobot Apps overview 551 Why Nautobot Apps? 553 Flexibility 554 Access to SoT data 554 Accelerated development 555 Reduced tool sprawl 555 Nautobot Apps ecosystem 556 Golden Config 556 Nornir 558 Device Onboarding app 558 Device Lifecycle Management (DLM) 558 Data Validation Engine 559 Single Source of Truth (SSoT) 560 Network data models 561 Design Builder app 562 Circuit Maintenance app 563 Secrets Providers app 565 Floor Plan app 566 ChatOps 566 Welcome Wizard app 568 What’s possible with Nautobot Apps? 568 Creating data models 568 Creating APIs 570 Creating UI elements to enhance the user experience 571 Distributing jobs 573 Creating network automation solutions 574 Nautobot Apps administration 575 Installing Nautobot Apps 575 Uninstalling Nautobot Apps 580 Summary 582 14 Intro to Nautobot App Development 583 Setting up your system for Nautobot App development 583 Installing Docker 584 Installing Python 3, Pip, Cookiecutter, and Poetry 586 Starting a Nautobot App with Cookiecutter 588 Exploring the App structure 590 Exploring pyproject.toml 593 Post-Cookiecutter tasks and Poetry 597 Introducing Invoke 598 Building the Docker image 599 Defining credentials 599 Running Nautobot 600 Exploring the Nautobot Developer API 605 Configuring a Nautobot App 605 Extending the existing Nautobot UI 608 Extending core functionality 618 Adding entirely new functionality 628 Summary 631 15 Building Nautobot Data Models 633 A real-world use case for custom Apps 633 Data model design 634 Gathering representative data and requirements 634 Considering composability, reusability, and deduplication of data 636 Considering built-in Nautobot extensibility features 636 When the data model suggests you should build an App 637 Building an App around existing data models 637 Data model based on extensibility features 639 Adding an ACL overview to the Device detail view 642 Adding ACL details as a Device tab 645 Adding a new Devices/ACLs view 649 Implementing the data table 650 Adding ACL details as a REST API endpoint 654 Review 658 Building an App with custom data models 659 Designing the ACL data models 659 Implementing the ACL data models 661 Implementing the REST API 669 Implementing the UI 673 Exercises or next steps 686 Summary 686 16 Automating with Nautobot Apps 687 A real-world use case for network automation in a Nautobot app 687 Design requirements 688 Building an App for network automation 688 Rendering IP ACL config using Jinja2 688 Writing a job to push config to a device using Netmiko 692 Preparing the device and related data in Nautobot 697 Running the job 700 Adding a job button to enable one-click configuration 701 Next steps on your journey 705 Summary 706 Appendix 1 Nautobot Architecture 707 Nautobot components and services 707 Database: PostgreSQL or MySQL 709 In-memory data store: Redis 709 In-Memory Data Store High-Availability: Redis Sentinel 711 Job execution: Celery Worker(s) 712 Job queues: Celery task queues 712 Job scheduler: Celery Beat 714 Web server: uWSGI 715 Appendix 2 Integrating Distributed Data Sources of Truth with Nautobot 719 Understanding distributed data sources 719 Challenges of distributed data 721 Benefits of aggregating data 721 Approaches to distributed data management 722 Exploring the Nautobot SSoT framework 723 Getting started with the Nautobot SSoT framework 725 Existing SSoT integrations 735 Building your own SSoT integration 740 Defining the data model mappings 740 Creating a data sync job 741 Using the custom SSoT job 746 Appendix 3 Performing Config Compliance and Remediation with Nautobot 749 Why Golden Config 749 Golden Config design 750 Golden Config use cases 751 Performing Config backups 753 Generating intended configurations 755 Performing config compliance 757 Automating config remediation and deployments 764 Best practices and tips 769 Index 771 Other Books You May Enjoy 788
Edelman Jason and others / Эдельман Джейсон и другие - Network Automation with Nautobot / Автоматизация сети с помощью Autobot [2024, PDF/EPUB, ENG] download torrent for free and without registration
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum