You are previewing Programming and Automating Cisco Networks.
O'Reilly logo
Programming and Automating Cisco Networks

Book Description

Improve operations and agility in any data center, campus, LAN, or WAN

Today, the best way to stay in control of your network is to address devices programmatically and automate network interactions. In this book, Cisco experts Ryan Tischer and Jason Gooley show you how to do just that. You’ll learn how to use programmability and automation to solve business problems, reduce costs, promote agility and innovation, handle accelerating complexity, and add value in any data center, campus, LAN, or WAN.

The authors show you how to create production solutions that run on or interact with Nexus NX-OS-based switches, Cisco ACI, Campus, and WAN technologies.You’ll learn how to use advanced Cisco tools together with industry-standard languages and platforms, including Python, JSON, and Linux. The authors demonstrate how to support dynamic application environments, tighten links between apps and infrastructure, and make DevOps work better.

This book will be an indispensable resource for network and cloud designers, architects, DevOps engineers, security specialists, and every professional who wants to build or operate high-efficiency networks.

  •  Drive more value through programma­bility and automation, freeing resources for high-value innovation

  •  Move beyond error-prone, box-by-box network management

  •  Bridge management gaps arising from current operational models

  •  Write NX-OS software to run on, access, or extend your Nexus switch

  •  Master Cisco’s powerful on-box automation and operation tools

  •  Manage complex WANs with NetConf/Yang, ConfD, and Cisco SDN Controller

  •  Interact with and enhance Cisco Application Centric Infrastructure (ACI)

  •  Build self-service catalogs to accelerate application delivery

  •  Find resources for deepening your expertise in network automation

  • Table of Contents

    1. About This E-Book
    2. Title Page
    3. Copyright Page
    4. About the Authors
    5. About the Technical Reviewers
    6. Dedications
    7. Acknowledgments
    8. Contents at a Glance
    9. Contents
    10. Reader Services
    11. Icons Used in This Book
    12. Command Syntax Conventions
    13. Introduction
      1. Who Should Read This Book?
      2. How This Book Is Organized
    14. Section I: Getting Started with Network Programmability
      1. Chapter 1. Introduction: Why Network Programmability
        1. What Is Network Programmability
          1. Network Programmability Benefits
          2. Cloud, SDN, and Network Programmability
          3. SDN
          4. Is Programmability a New Idea?
          5. Network Automation
        2. Summary
      2. Chapter 2. Foundational Skills
        1. Introduction to Software Development
          1. Common Constructs—Variables, Flow Control, Functions, and Objects
          2. A Basic Introduction to Python
          3. APIs and SDKs
          4. Web Technologies
          5. Web Technologies—Data Formatting
          6. Google Postman
          7. Basic Introduction to Version Control, Git, and GitHub
          8. Git—Add a File
          9. Creating and Editing Source Code
          10. Getting Started with PyCharm
          11. Introduction to Linux
          12. Using Systemd
        2. Summary
    15. Section II: Cisco Programmable Data Center
      1. Chapter 3. Next-Generation Cisco Data Center Networking
        1. Cisco Application-Centric Infrastructure (ACI)
        2. Nexus Data Broker
          1. Use Case—Nexus Data Broker
        3. Evolution of Data Center Network Architecture
        4. Cisco Data Center Network Controllers
          1. Nexus Fabric Manager
          2. Virtual Topology System (VTS)
          3. Cisco ACI
        5. Summary
      2. Chapter 4. On-Box Programmability and Automation with Cisco Nexus NX-OS
        1. Open NX-OS Automation—Bootstrap and Provisioning
          1. Cisco POAP
          2. Cisco Ignite
          3. NX-OS iPXE
        2. Bash
          1. Bash Scripting
          2. Bash Variables, Conditions, and Loops
          3. Bash Arithmetic
          4. Bash Conditions and Flow Control
          5. Bash Redirection and Pipes
          6. Working with Text in Bash
        3. Awk
        4. Bash on Nexus 9000
          1. ifconfig
          2. Tcpdump
        5. ethtool
          1. Run a Bash Script at Startup
        6. Linux Containers (LXC)
          1. Network Access in Guestshell
          2. On-box Python Scripting
        7. On-Box Python—Use Cases and Examples
          1. EEM Neighbor Discovery
        8. Summary
      3. Chapter 5. Off-Box Programmability and Automation with Cisco Nexus NX-OS
        1. Nexus NX-API
          1. NX-API Transport
          2. NX-API Message Format
          3. NX-API Security
          4. NX-API Sandbox
        2. Summary
        3. Resources
      4. Chapter 6. Network Programmability with Cisco ACI
        1. Cisco ACI Automation
          1. ACI Policy Instantiation
          2. A Bit More Python
          3. Python Exceptions Handling
        2. ACI Fundamentals
          1. ACI Management Information Model
        3. ACI Programmability
          1. Cobra SDK
        4. Summary
    16. Section III: Cisco Programmable Campus and WAN
      1. Chapter 7. On-Box Automation and Operations Tools
        1. Automated Port Profiling
        2. AutoSmart Ports
          1. Enabling AutoSmart Ports on a Cisco Catalyst Switch
        3. AutoConf
          1. Enabling AutoConf on a Cisco Catalyst Switch
          2. Modifying a Built-in Template
        4. Auto Security
          1. Enabling Auto Security on a Cisco Catalyst Switch
        5. Quality of Service for Campus Architectures
          1. AutoQoS on Campus LAN Devices
          2. Enabling AutoQoS on a Cisco Catalyst Switch
          3. AutoQoS on Campus WAN Devices
          4. Enabling AutoQoS on a Cisco ISR Router
        6. Automating Management and Monitoring Tasks
          1. Smart Call Home
          2. Enabling Smart Call Home on an Cisco Catalyst Switch
          3. Tcl Shell
          4. Embedded Event Manager (EEM)
        7. Summary
      2. Chapter 8. Network Automation Tools for Campus Environments
        1. Data Models and Supporting Protocols
          1. YANG Data Models
          2. NETCONF
          3. ConfD
        2. Application Policy Infrastructure Controller Enterprise Module (APIC-EM)
          1. APIC-EM Architecture
          2. APIC-EM Applications
          3. Intelligent WAN (IWAN) Application
          4. Plug and Play (PnP) Application
          5. Path Trace Application
        3. Additional APIC-EM Features
          1. Topology
          2. Device Inventory
          3. Easy Quality of Service (Easy QoS)
          4. Dynamic QoS
          5. Policy Application
        4. APIC-EM Programmability Examples Using Postman
          1. Ticket API
          2. Host API
          3. Network Device API
          4. User API
          5. Available APIC-EM APIs
        5. APIC-EM Programmability Examples Using Python
          1. Ticket API
          2. Host API
        6. Summary
      3. Chapter 9. Piecing It All Together
    17. Index
    18. Code Snippets