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:
if you format this:
you would get this:
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.
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
Install python3 : https://www.python.org/ftp/python/3.7.2/python-3.7.2-webinstall.exe
During installation check add to path
Install libraries via cmd :
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:
The created folder's structure after the application completed the task:
Here you can see the output of the SSH connections that were successfull:
The .txt version of the output:
It can be run on windows, linux, mac
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.
If you face any issues please create an issue in the github built-in issue tracker
Please contact me if you want to contribute to this project and I will give you further instructions.
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](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/Cisco-OS-Parallel-CLI-GUI-screen.png) ### 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](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/mainGUI2.png)
The created folder's structure after the application completed the task:
![N|Image](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/results-folder-structure.png)
Here you can see the output of the SSH connections that were successfull:
![N|Image](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/CSV-Output.png)
The .txt version of the output:
![N|Image](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/results-txt-sample.png)
The reported failures:
![N|Image](https://github.com/george-panou/Cisco-IOS-Parallel-CLI/blob/master/images/AllFailures-sample.png)
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.
Owner
Contributors
Categories
Programming Languages
PythonLicense
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community