Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20
, ,

Network Programmability and Automation

Skills for the Next-Generation Network Engineer

Paperback Engels 2018 9781491931257
Verwachte levertijd ongeveer 8 werkdagen


With Early Release ebooks, you get books in their earliest form-the author's raw and unedited content as he or she writes-so you can take advantage of these technologies long before the official release of these titles. You'll also receive updates when significant changes are made, new chapters are available, and the final ebook bundle is released.

Automation is the new skillset 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


Aantal pagina's:561
Hoofdrubriek:IT-management / ICT


Wees de eerste die een lezersrecensie schrijft!

Geef uw waardering

Zeer goed Goed Voldoende Matig Slecht

Over Scott Lowe

Scott Lowe, VMware vExpert, has worked in IT for more than 15 years and currently works with a national VAR/reseller as a technical lead specializing in virtualization. He is also the author of Mastering VMware vSphere 4.

Andere boeken door Scott Lowe


What This Book Covers
How This Book is Organized
Who Should Read This Book
Network Engineers
Systems Administrators
Software Developers
Tools Used in this Book
Online Resources
Conventions Used in This Book
Using Code Examples
O’Reilly Safari
How to Contact Us

1. Network Industry Trends
The Rise of Software Defined Networking
What is Software Defined Networking?

2. Network Automation
Why Network Automation?
Simplified Architectures
Deterministic Outcomes
Business Agility
Types of Network Automation
Device Provisioning
Data Collection
Configuration Management
Evolving the Management Plane from SNMP to Device APIs
Application Programming Interfaces (APIs)
Impact of Open Networking
Network Automation in the SDN Era

3. Linux
Examining Linux in a Network Automation Context
A Brief History of Linux
Linux Distributions
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
Running Programs
Working with Daemons
Networking in Linux
Working with Interfaces
Routing as an End Host
Routing as a Router
Bridging (Switching)

4. Learning Python in a Network Context
Should Network Engineers Learn to Code?
Using the Python Interactive Interpreter
Understanding Python Data Types
Learning to use Strings
Learning to use Numbers
Learning to use Booleans
Learning to use Python Lists
Learning to use Python Dictionaries
Learning about Python Sets & Tuples
Adding Conditional Logic to your Code
Understanding Containment
Using Loops in Python
Understanding the while loop
Understanding the for loop
Using Python Functions
Working with Files
Reading from a File
Writing to a File
Creating Python Programs
Creating a Basic Python Script
Understanding the Shebang
Using if name == "main“:
Migrating Code from the Python Interpreter to a Python Script
Working with Python Modules
Passing Arguments into a Python Script
Using pip and Installing Python Packages
Learning Additional Tips, Tricks, and General Information when using Python

5. Data Formats and Data Models
Introduction to Data Formats
Types of Data
Reviewing YAML Basics
Working with YAML from Python
Data Models in YAML
Reviewing XML Basics
Using XML Schema Definition (XSD) for Data Models
Transforming XML with XSLT
Searching XML Using XQuery
Reviewing JSON Basics
Working with JSON in Python
Using JSON Schema for Data Models
Data Models Using YANG
YANG Overview
Taking a Deeper Dive into YANG

6. Network Configuration Templates
The Rise of Modern Template Languages
Using Templates for Web Development
Expanding on the Use of Templates
The Value of Templates in Network Automation
Jinja for Network Configuration Templates
Why Jinja?
Dynamically Inserting Data Into a Basic Jinja Template
Rendering a Jinja Template file in Python
Conditionals and Loops
Jinja Filters
Template Inheritance in Jinja
Variable Creation in Jinja

7. Working with Network APIs
Understanding Network APIs
Getting Familiar with HTTP-Based APIs
Diving into NETCONF
Exploring Network APIs
Exploring HTTP-Based APIs
Exploring NETCONF
Automating Using Network APIs
Using the Python requests Library
Using the Python ncclient Library
Using netmiko

8. Source Control with Git
Use Cases for Source Control
Benefits of Source Control
Change Tracking
Process and Workflow
Benefits of Source Control for Networking
Enter Git
Brief History of Git
Git Terminology
Overview of Git’s Architecture
Working with Git
Installing Git
Creating a Repository
Adding Files to a Repository
Committing Changes to a Repository
Changing and Committing Tracked Files
Unstaging Files
Excluding Files from a Repository
Viewing More Information About a Repository
Distilling Differences Between Versions of Files
Branching in Git
Creating a Branch
Checking out a Branch
Merging and Deleting Branches
Collaborating with Git
Collaborating Between Multiple Systems Running Git
Collaborating Using Git-Based Online Services

9. Automation Tools
Reviewing Automation Tools
Using Ansible
Understanding How Ansible Works
Constructing an Inventory File
Executing an Ansible Playbook
Using Variable Files
Writing Ansible Playbooks for Network Automation
Using Third Party Ansible Modules
Ansible Summary
Automating with Salt
Understanding the Salt Architecture
Getting Familiar with Salt
Managing Network Configurations with Salt
Executing Salt Functions Remotely
Diving into Salt’s Event Driven Infrastructure
Diving into Salt a Bit Further
Salt Summary
Event-Driven Network Automation with StackStorm
StackStorm Concepts
StackStorm Architecture
Actions and Workflows
Sensors and Triggers
StackStorm Summary
Chapter Summary

10. Continuous Integration
Important Pre-Requisites
Simple is Better
People, Process, and Technology
Learn to Code
Introduction to Continuous Integration
Basics of Continuous Integration
Continuous Delivery
Test-Driven Development
Why Continuous Integration for Networking?
A Continuous Integration Pipeline for Networking
Peer Review
Build Automation
Test/Dev/Staging Environment
Deployment Tools
Testing Tools and Test-Driven Network Automation

11. Building a Culture for Network Automation
Organizational Strategy and Flexibility
Transforming a Old-World Organization
The Importance of Executive Buy-In
Build vs Buy
Embracing Failure
Skills and Education
Learn What You Don’t Know
Focus on Fundamentals
Won’t Automation Take My Job?!

A. Advanced Networking in Linux
Using macvlan Interfaces
Use Cases for macvlan Interfaces
Creating, Configuring, and Deleting macvlan Interfaces
Networking Virtual Machines
Using a Bridge
Using macvtap Interfaces
Working with Network Namespaces
Use Cases for Network Namespaces
Creating and Removing Network Namespaces
Placing Interfaces in a Network Namespace
Executing Commands in a Network Namespace
Connecting Network Namespaces with veth Pairs
Networking Linux Containers
Configuring LXC Networking
Configuring Docker Networking
Using Open vSwitch (OVS)
Installing OVS
Configuring OVS
Connecting Workloads to OVS

Understanding Configuration Management in NAPALM
Performing a Configuration Replace
Performing a Configuration Merge
Retrieving Data with NAPALM
NAPALM Integrations
Using NAPALM in Ansible
Using NAPALM in Salt
Using NAPALM in StackStorm


Managementboek Top 100


Populaire producten



        Network Programmability and Automation