One of my readers considered joining the Building Network Automation Solutions course but wasn’t sure whether it would help him solve the challenges he’s facing in his network.
Fortunately, his challenges aren’t that hard to solve.
I want to manage the Tacacs and/or Radius keys on all the devices in an automated fashion.
I want to manage the SNMP community strings in an automated fashion.
Same as above… unless he’s using SNMPv3. Cisco IOS doesn’t store SNMPv3 credentials in the configuration file, so he’d need a combination of show and config commands.
Getting data from a device is explained in details in the Ansible Networking Modules – Executing Commands section of Ansible for Networking Engineers, and the whole Week 2 of the online course is dedicated to gathering information from networking devices and acting on it.
I want to manage the tacacs, radius, ntp, snmp hosts in an automated fashion.
I want to manage the local user accounts and password in an automated fashion.
Not a problem (there are examples doing exactly that in Jinja2 part of Ansible for Networking Engineers webinar), but he’d probably have to implement an additional cleanup step (covered in Week#4 of the online course).
I do want to check the configs of the devices for the settings above and compare that to what I have on file in a DB.
Covered in Week#2 of the course. Integration with external databases will be covered in Week#6.
If they are out of sync I want to report and then offer the option to remediate in an automated fashion.
I actually have a playbook doing exactly that ;)… well, not the remediation part.
Environment: Legacy Cisco IOS, NX-OS, IOS-XE, IOS-XR
You’re free to choose the platforms you’ll work on during the Building Network Automation Solutions course, and while most of my future examples will be based on vEOS or Cumulus Linux (because bloatware), most students use IOS or NX-OS in their labs (realities of life).
I have experience with expect scripts to do batch tasks. I know the newer Cisco operating systems have Python support.
We're not using that. We're using Ansible because it doesn't require anything on the network devices.
My challenge is that I feel that my use case is one of "scripting" and not necessarily "automation".
Automation is the use of various control systems for operating equipment […] with minimal or reduced human intervention. (source)
A scripting or script language is a programming language that supports scripts; programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator. (source)