Preface

For diagrams, tables, or exact code formatting, .

JOHN W. CAPOBIANCOPRINTED PAGE 2

Chapter 3 How to Automate the Network? The modern network management toolkit is described here. The tools required to automate the network include:

 Microsoft Visual Studio Code (VS Code) (https://code.visualstudio.com/).  Microsoft Team Foundation Server (TFS) (https://visualstudio.microsoft.com/tfs/).  Git (https://git-scm.com/).  Linux (Ubuntu (https://www.ubuntu.com/)).  Ansible (https://www.ansible.com/). Chapter 4 Where to Start with Network Automation? This chapter includes guidelines for launching the automation initiative. Begin with gathering information about the network’s current state and gradually start making small tactical changes while building towards larger orchestrated solutions.

Part II. Chapter 5 Repository Structure This chapter includes a recommended approach for the repository structure. The skeletal folder structure that holds variables, tasks, templates, Ansible playbooks, and automated documentation that scales with growth.

Chapter 6 Network Reconnaissance Begin network automation by first discovering and documenting the network. This chapter provides examples of network reconnaissance playbooks that can be used to gather detailed information from network devices.

Chapter 7 Tactical Playbooks This chapter provides examples of tactical one-time change playbooks leveraging the Ansible ios_command module for Cisco devices.

Chapter 8 Data Models and Dynamic Templates This chapter explains how to abstract data from configurations and create models in YAML (http://yaml.org/) and dynamic templates using Jinja2 (http://jinja.pocoo.org/docs/2.10/).

Chapter 9 Dynamic Intent-Based Documentation Utilizing data models this chapter introduces intent-based documentation. The Ansible assemble module is introduced along with the Markdown (https://daringfireball.net/projects/markdown/) file format.

Chapter 10 Configuration Management