Skip to content

george-panou/Cisco-IOS-Parallel-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

published

Cisco IOS Parallel CLI

This is an application to run IOS CLI commands simultaneously on multiple cisco devices. It offers a Graphical Interface to run the commands displaying the output live and reporting it in .txt and scv format.

It uses multithreading to speed up the procedure, opening one parallel SSH connection per device IP

Add the device IPs on the left panel and the set of commands to be executed on the right panel.

The list needs to be consisted of one IP per line

You can use the formating function to remove illegal characters from the IP list, it will also delete illegal IPs and remove Duplicate IPs.

You can check if the IP list contains illegal IPs using the check IPs Button

With format you could for example get rid of characters:

Graphical Interface

N|Image

Formating feature

if you format this:

  • 192.168.1.1-basement
  • ip:192.168.1.2-1st floor

you would get this:

  • 192.168.1.1
  • 192.168.1.2

You could import the IPs through a file as well using the Browse for file button, it shares the functionality with copy pasting the data.

Installation

While installation is not needed you need to install some dependencies: The version of python used is python 3, it's not backwards compatible with python 2

  1. Install python3 : https://www.python.org/ftp/python/3.7.2/python-3.7.2-webinstall.exe

  2. During installation check add to path

  3. Install libraries via cmd :

    • pip install pathlib
    • pip install netmiko
    • pip install paramiko
    • pip install -U wxPython
    • pip install requests

Usage

  1. cd into the directory that ciscoCLI.py is located και and run: python ciscoCLI.py alternatively you can double click the provided run.bat file if you are on windows
  2. Place one IP per line and one command per line in the IP List and Commands List respectively
  3. Click the Run Commads Button
  4. Live output will be displayed in the main text area - this will be asynchronous with one thread corresponding to one device
  5. The software will attempt to login using ssh and telnet if ssh fails, it will also retry at each of these two steps with alternate credentials only if they are actually supplied
  6. The application will create a directory with a timestamp as its name including up to four csv files with the command's results it will also crete another folder with .txt files, with detailed output - one file for each device
  7. In universal failures .csv you can find the devices that the application could not login at all or failed to execute the commands at some point

Accessing the Results

Here are some sample results after performing a use case wich covers a SSH successful connection, a failed telnet connection and a non existing IP:

The use case senario includes one SSH enabled device one only accessible via Telnet and one non-existent:
N|Image

The created folder's structure after the application completed the task:
N|Image

Here you can see the output of the SSH connections that were successfull:
N|Image

The .txt version of the output:
N|Image

The reported failures:
N|Image

It can be run on windows, linux, mac

Known Issues

The application will fail to ignore some self signed certificates, causing the connection to the network device to close. We are working on better identifying the issue's root cause.

Getting Help

If you face any issues please create an issue in the github built-in issue tracker

Contributing

Please contact me if you want to contribute to this project and I will give you further instructions.

About

A multithreaded GUI python application to run commands on IOS devices in parallel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published