Book Image

Practical Network Automation

By : Abhishek Ratan
Book Image

Practical Network Automation

By: Abhishek Ratan

Overview of this book

Network automation is the use of IT controls to supervise and carry out every-day network management functions. It plays a key role in network virtualization technologies and network functions. The book starts by providing an introduction to network automation, SDN, and its applications, which include integrating DevOps tools to automate the network efficiently. It then guides you through different network automation tasks and covers various data digging and reporting methodologies such as IPv6 migration, DC relocations, and interface parsing, all the while retaining security and improving data center robustness. The book then moves on to the use of Python and the management of SSH keys for machine-to-machine (M2M) communication, all followed by practical use cases. The book also covers the importance of Ansible for network automation including best practices in automation, ways to test automated networks using different tools, and other important techniques. By the end of the book, you will be well acquainted with the various aspects of network automation.
Table of Contents (14 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Device OS upgrades


Sometimes we need to upgrade devices such as routers, switches, and firewalls. It is easy to perform upgrades on one device, but we need automation to upgrade multiple routers. Different devices have different ways of upgrading IOS or OS images, and the automation or scripts are created with different methods depending on the device.

Taking an example of upgrading a Cisco IOS router; there are two basic steps or tasks that need to be performed:

  1. Copy the relevant OS or IOS image into flash: or bootflash:.
  2. Change the config to reload the router with the new image.

Task 1: Prerequisites (to copy relevant OS or IOS image):

  • We need a FTP server that's accessible from the router and has the IOS image that we need on the router
  • We need the image, the correct MD5 checksum, and the image size for validation

The sample code for task 1 is as follows:

from netmiko import ConnectHandler
import time

def pushimage(imagename,cmd,myip,imgsize,md5sum=None):
    uname="cisco"
    passwd="cisco...