Automation is the new skill-set that network engineers need to pick up. Much like sysadmins have had to learn how to use new tools like Chef and Puppet, network engineers are learning that they just can’t do things manually anymore. With examples in each chapter, this practical book provides you with baseline skills in network programmability and automation, using a range of technologies including Linux, Python, JSON, and XML. No previous knowledge of software development, programming, automation, or DevOps is required.
- Understand the basics of Linux as applied to networking
- Learn how to use text editors and Python to automate networks
- Apply sound software design principles like continuous integration, DevOps, source control, etc. to optimize networks
1. Software Defined Networking
The Rise of Software Defined Networking
What is Software Defined Networking?
Linux in a Network Automation Context
A Brief History of Linux
Red Hat Enterprise Linux, Fedora, and CentOS
Debian, Ubuntu, and Other Derivatives
Other Linux Distributions
Interacting with Linux
Navigating the File System
Manipulating Files and Directories
Working with Daemons
Working with Background Services in Ubuntu Linux 14.04 LTS
Networking in Linux
Working with Interfaces
Routing as an End Host
Routing as a Router
Should Network Engineers Learn to Code?
Python Interactive Interpreter
4. Data Formats
Introduction to Data Formats
Types of Data
What is YAML?
What is XML?
XML Schema Definition (XSD)
Transforming XML with XSLT
What is JSON?
Working with JSON in a Language