Automating Junos Administration. Doing More with Less - Helion
ISBN: 978-14-919-2930-8
stron: 684, Format: ebook
Data wydania: 2016-04-28
Księgarnia: Helion
Cena książki: 152,15 zł (poprzednio: 176,92 zł)
Oszczędzasz: 14% (-24,77 zł)
How can you grow and maintain a reliable, flexible, and cost-efficient network in the face of ever-increasing demands? With this practical guide, network engineers will learn how to program Juniper network devices to perform day-to-day tasks, using the automation features of the Junos OS.
Junos supports several automation tools that provide powerful solutions to common network automation tasks. Authors Jonathan Looney and Stacy Smith, senior testing engineers at Juniper, will help you determine which tools work best for your particular network requirements. If you have experience with Junos, this book will show you how automation can make a big difference in the operation of your existing network.
- Manage Junos software with remote procedure calls and a RESTful API
- Represent devices as Python objects and manage them with Python’s PyEZ package
- Customize Junos software to detect and block commits that violate your network standards
- Develop custom CLI commands to present information the way you want
- Program Junos software to automatically respond to network events
- Rapidly deploy new Junos devices into your network with ZTP and Netconify tools
- Learn how to use Ansible or Puppet to manage Junos software
Osoby które kupowały "Automating Junos Administration. Doing More with Less", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Mapa Agile & Scrum. Jak si 57,69 zł, (15,00 zł -74%)
- Sztuka podst 53,46 zł, (13,90 zł -74%)
- Lean dla bystrzaków. Wydanie II 49,62 zł, (12,90 zł -74%)
Spis treści
Automating Junos Administration. Doing More with Less eBook -- spis treści
- Foreword
- Preface
- Assumptions
- How to Read This Book
- Whats in This Book?
- Conventions Used in This Book
- Using Code Examples
- Safari Books Online
- How to Contact Us
- Acknowledgments
- From Jonathan Looney
- From Stacy Smith
- 1. Introduction
- Benefits of Automation
- Automation Saves Time
- Automation Prevents Human Error
- Automation Saves Memory
- Automation Prevents Copy/Paste Errors
- Automation Enables New Services
- Management System Internals
- Accessing the Management System
- Operational Command Flow
- Configuration Data Flow
- Configuration Databases and the Commit Model
- Configuration Databases
- The shared candidate configuration database
- Other configuration editing modes
- Exclusive configuration mode
- Private configuration mode
- The Commit Process
- Validating the configuration
- Activating the configuration
- Signaling daemons
- Creating the merged configuration view
- Configuration Databases
- Information About the Book
- Benefits of Automation
- 2. RPC Mechanisms
- Structured Data Model
- Structured Data Formats
- XML data
- Accessing XML data with XPath
- JSON data
- Using Structured Data in Python
- Installing jxmlease
- Parsing XML with jxmlease
- jxmlease objects
- Iterating over jxmlease objects
- Producing XML output
- Structured Data Formats
- Running RPCs on a Junos Device
- RPC Authorization
- Operational RPCs
- RPC Output Formats
- Discovering Operational RPC Syntax
- Discovering RPC Reply Syntax
- Configuration with RPCs
- Configuration Representation in XML
- Discovering XML Configuration Syntax
- Operational RPCs to View and Change the Configuration
- Viewing the Configuration
- Changing the Configuration
- Choosing a database
- Loading configuration changes
- Reordering configuration elements
- Deleting configuration elements
- Choosing a commit style
- Example configuration session
- Chapter Summary
- Structured Data Model
- 3. The RESTful API Service
- Enabling the RESTful API Service
- HTTP GET Requests
- Authentication and Authorization
- Formatting HTTP Responses
- HTTP POST Requests
- Adding Parameters to RPCs
- Multiple RPCs in One Request
- Configuration
- RESTful API Explorer
- Using the RESTful APIs in Python
- The Preamble
- Loop Through Each Device
- Gather LLDP Neighbor Information
- Gather and Parse Interface Descriptions
- Check for XML Warnings and Errors
- Compare Current and Previous LLDP Neighbor Information
- Build a Candidate Configuration
- Apply and Commit the Candidate Configuration
- Parse Multi-RPC Responses
- Putting It All Together
- Additional RESTful API Service Configuration
- Internal Design
- Limitations
- Chapter Summary
- 4. Junos PyEZ
- Installation
- Device Connectivity
- Creating a Device Instance
- Making the Connection
- Authentication and Authorization
- Connection Exceptions
- Facts Gathering
- Closing the Connection
- RPC Execution
- RPC on Demand
- RPC Parameters
- RPC Timeout
- RPC Exceptions
- RPC Responses
- lxml Elements
- Response Normalization
- jxmlease
- JSON
- Operational Tables and Views
- Prepackaged Operational Tables and Views
- Creating New Operational Tables and Views
- Using the New Operational Table and View
- Applying a Different View
- Saving and Loading XML Files from Tables
- Configuration
- Loading Configuration Changes
- Configuration Templates
- Viewing Configuration Differences
- Committing Configuration Changes
- Using the Rescue Configuration
- Utilities
- A PyEZ Example
- The Preamble
- Loop Through Each Device
- Gather LLDP Neighbor Information
- Gather and Parse Interface Descriptions
- Compare Current and Previous LLDP Neighbor Information
- Build, Apply, and Commit the Candidate Configuration
- Putting It All Together
- Limitations
- NETCONF Libraries for Other Languages
- Chapter Summary
- 5. Commit Scripts
- Use Cases
- Custom Configuration Checks
- Automatically Fixing Mistakes
- Dynamically Expanding Configuration
- Basic Execution Flow
- XML Transformations
- Commit Script XML Input and Output Documents
- Optimization for large configurations
- Passing information to commit scripts
- Performing Other Operations
- Changing the Configuration
- Handling Transient Changes
- Handling Permanent Changes
- Writing Commit Scripts in SLAX/XSLT
- Overview of a SLAX Script
- Basic SLAX template
- Building an Output Document
- XML output
- Formatting text
- Accessing variables and XML data
- Text splicing
- printf()-like formatting
- Concatenation
- Logical statements
- Working with Variables and XML Data
- XML data
- SLAX variables
- Mutable variables
- Templates
- Defining match templates
- Defining and calling named templates
- Template results
- Flow Control
- for-each loops over XML nodes
- for loops over number ranges
- if/else statements
- Predefined Templates
- jcs:emit-change()
- jcs:edit-path()
- Overview of a SLAX Script
- Commit Script Examples
- Example: Custom Configuration Checks
- Example: Automatically Fixing Mistakes
- Example: Dynamically Expanding Configuration
- Chapter Summary
- Use Cases
- 6. Op Scripts
- Use Cases
- Custom CLI Commands
- Automatically Responding to Events
- Customizing Your Device
- Overview of Op Script Operation
- Op Script Input Document
- Op Script Arguments
- Op Script Document Processing
- Op Script Output Document
- Operational and Configuration State
- Interacting with Operational State
- Making a connection to the device
- Executing RPCs
- Closing your session
- Interacting with Configuration State
- Accessing configuration data
- Changing configuration data
- Interacting with Operational State
- Op Script Input and Output
- Formatting Output
- Displaying Immediate Output
- Obtaining User Input
- Obtaining normal user input
- Obtaining secrets interactively
- Some Useful Tools for Op and Event Scripts
- Dampening Events
- Parsing Strings
- Generating SNMP Objects and Traps
- Debugging Op and Event Scripts
- Printing Progress Messages
- Trace Messages
- Syslog Messages
- The SLAX Debugger
- Configuring Op Scripts
- Examples
- Example: Custom CLI Command
- Exercise
- Example: Filtering CLI Output
- Example: Custom CLI Command
- Chapter Summary
- Use Cases
- 7. Event Scripts and Event Policies
- Overview of Event Script Operation
- Event Script Input Document
- Event Script Arguments
- Event Script Document Processing
- Event Script Output Document
- Event Policies
- Event Discovery
- Defining Event Policy Match Criteria
- Correlating events
- Matching on event counts
- Comparing attribute values
- Creating events on a schedule
- Defining Event Policy Actions
- Modifying default behavior
- Suppressing events
- Changing event priorities
- Raising an SNMP trap
- Executing commands
- Running operational-mode commands
- Running configuration-mode commands
- Uploading files
- Defining a destination
- Saving output from commands or scripts
- Saving a copy of a file
- Running an op or event script
- Modifying default behavior
- Event Policy Loops
- Embedding Event Policies in Event Scripts
- Example of embedding an event policy in an event script
- Testing Event Policies
- Configuring Event Scripts
- Example: Responding to a Flapping Link
- The Event
- The Event Policy
- The Event Script
- The Results
- Chapter Summary
- Overview of Event Script Operation
- 8. Initial Provisioning
- ZTP
- Netconify
- Chapter Summary
- 9. Puppet
- Puppet Architecture
- Components for Junos Devices
- Installation and Configuration
- Puppet Master
- Junos Device
- Creating a Minimal Manifest
- Executing the Puppet Agent for the First Time
- The Puppet Language
- Basic Resource Syntax
- Variables
- Strings
- Classes
- Conditional Statements
- Node Definitions
- Manifest Organization
- Using Core Resource Types
- Managing ~/.cshrc with the file Resource
- Managing puppet.conf with an ERB Template
- Managing the Puppet Agent with the cron Resource
- Using the netdev Resource Types
- The netdev_device Resource
- The netdev_vlan Resource
- The netdev_interface Resource
- The netdev_l2_interface Resource
- The netdev_lag Resource
- The netdev_stdlib_junos::apply_group Resource
- Chapter Summary
- 10. Ansible
- Architecture and Communication
- Typical Communication
- Communicating with Junos Managed Nodes
- Installation and Configuration
- Installing Ansible
- Installing the Juniper.junos Role
- The Ansible Configuration File
- Junos Authentication and Authorization
- Creating Ansible Playbooks
- Inventory
- Playbooks and Plays
- Tasks and Modules
- Handlers
- Execution
- Variables
- Roles
- Conditionals
- Loops
- Vaults
- Ansible for Junos Modules
- junos_get_facts
- junos_zeroize
- junos_srx_cluster
- junos_shutdown
- junos_install_os
- junos_get_config
- junos_install_config
- junos_rollback
- junos_commit
- Example Playbooks
- Inventory, Variables, and Ansible Configuration Settings
- Gathering Junos Facts and Dynamic Groups
- Zeroize
- Initial Configuration
- Core OSPF Configuration
- Chapter Summary
- Architecture and Communication
- 11. Putting Automation into Practice
- Use Cases
- Configuration Use Cases
- Automate initial deployment
- Scenario
- Solutions
- Configure BGP overload on bootup
- Scenario
- Solutions
- Enforce configuration compliance
- Scenario
- Solutions
- Generate eBGP prefix filters
- Scenario
- Solutions
- Deploy configuration templates
- Scenario
- Solutions
- Trigger configuration change from host state
- Scenario
- Solutions
- Automate initial deployment
- Operational Use Cases
- Detect and fix configuration errors
- Scenario
- Solutions
- Detect toxic commits
- Scenario
- Solutions
- Execute a cron job
- Scenario
- Solutions
- Gather inventories on a recurring basis
- Scenario
- Solutions
- Migrate a port between devices
- Scenario
- Solutions
- Deploy a root password vault
- Scenario
- Solutions
- Detect and fix configuration errors
- Configuration Use Cases
- Best Practices
- General Recommendations
- What to automate
- Determining requirements
- Maintainability
- Handling exceptional conditions
- Avoiding script-induced failures
- Scaling
- Network standardization and automation
- Security
- Miscellaneous
- Tool-Specific Recommendations
- RESTful API
- PyEZ
- Op, commit, and event scripts
- Initial provisioning
- Puppet
- Ansible
- General Recommendations
- Wrap-Up
- Use Cases
- Glossary
- Index