
ConclusionĮven though this playbook might not be usable to you as is, I hope it gave you some ideas about how you can work with Ansible to automate your network. Another playbook could easily be created using the snmp_device_version module to get the current version and if it’s not the desired version issue a reload. This is within the Configuring Cisco CSR 1000v on Microsoft Azure section of the Cisco CSR 1000v Deployment Guide for Microsoft Azure. bin file you must follow the steps in Upgrading a Cisco IOS XE Image on Microsoft Azure.
#CISCO IOS UPGRADE UPGRADE#
But you will probably want to save the actual reboot for a maintenance window. (Cisco IOS XE Fuji 16.7 or later) On Microsoft Azure, to do an in-place upgrade of the Cisco CSR 1000v. You could do this by adding a reload command to the save config handler. The above examples will only prepare the devices for a new version and after this they need to be rebooted. name : Copy Pre4 boot image ntc_file_copy : host : " " commands : " write mem" Rebooting I setup this first task with the snmp_query module. If you are completely new to Ansible you might want to learn some basics, but it should still be quite easy to follow along.Īfter looking around a bit i figured that one of the easiest way to check if the target device was redundant was to do an SNMP query to the cRFStatusPeerUnitState (1.3.6.1.4.1.9.9.176.1.1.4) oid from CISCO-RF-MIB.

Previously the way the routers were upgraded was to ssh into each device and tftp or scp copy the image files to flash and change the boot order. Even if you aren’t using IOS you might find it interesting to see how different Ansible modules can be combined in order to complete a set of tasks. Basically the steps required to do the upgrade can be broken down into parts which map quite nicely to tasks in an Ansible playbook. As I’ve been using Ansible a lot lately I decided to start there. I was recently asked to automate the way a client handles Cisco IOS upgrades.
