![]()
内容推荐 和先前的系统管理员一样,网络工程师也发现他们再也无法靠手动完成工作了。随着该领域中出现了新的协议、技术、交付模式以及企业力求更加敏捷和灵活的迫切需求,网络自动化正变得至关重要。这本实用指南向网络工程师展示了如何利用各种技术和工具(包括Linux、Python、JSON和XML),通过代码实现系统自动化。 詹森·埃德尔曼斯科特·S.洛、马特·奥斯瓦尔特著的《网络编程与自动化(影印版)(英文版)》将帮助你简化与配置、管理、网络设备操作、拓扑、服务以及连通性相关的任务。在本书的学习过程中,你将学习到完成这种关键转换所需的基本技能和工具。 目录 Preface 1.NetworkIndustryTrends The Rise of Software Defined Networking OpenFlow What Is Software Defined Networking Summary 2.NetworkAutomation Whv Network Automation Simplified Architectures Deterministic Outcomes Business Agility Types of Network Automation Device Provisioning Data Collection Migrations Configuration Management Compliance Reporting Troubleshooting Evolving the Management Plane from SNMp to Device APIs Application Programming Interfaces(APIs) Impact of Open Networking Network Automation in the SDN Era Summary 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 Linttx Distributions Interacting with Linux Navigating the Filesystem 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) Summary 4.Learning Pythonin a NetworkContext 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 and 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 Readingfrom aFile Writingto aFile Creating Python Programs Creating a Basic PYthon Script Understanding the Shebang Migrating Code from the Python Interpreter to a Python Script Worldng 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 Summary 5.Data Formats and DataModels Introduction to Data Formats Types ofData YAML Reviewing YAML Basics Worldng with YAML in Python Data Models in YAML XML Reviewing XML Basics Using XML Schema Definition(XSD)for Data Models Transforming XML with XSLT Searching XML Using XQuery TSON 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 Summary 6.NetworkConfigurationTemplates The Rise of Modern Template Languages Using Templates for Wleb Development Expanding On the Use of Templates The Value of Templates in Network Automation Jinja for Network Configuration Templates whyIinja 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 Iinja Summary 7.Workingwith NetworkAPIs 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 Librarv Using netmiko Summary 8.SourceControlwith Git Use Cases for Source Control Benefits of Source Control Change Tracking Accountability Process and W10rknOW Benefits of Source Control for Networking EnterGit 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 Unst |