This program is designed to send a set of Cisco commands to multiple network devices from text files.
This Python script was tested in a physical lab environment and on IOS XE on CSR Latest AlwaysOn v17.3.1 Cisco DevNet Sandbox.
$ git clone https://github.com/Tes3awy/Send-Config-From-File-To-Devices.git
$ cd Send-Config-From-File-To-Devices
$ pip install -r requirements.txt
python main.py
The Python script runs as following:
- Reads IP addresses in
data/device_ip_list.txt
. - Checks if those IP addresses are valid IPv4 addresses using built-in Python3
ipaddress
module. - Pings those IP addresses using Ping3 to check reachability.
- If an IP address is UNREACHABLE for whatever reason, then this IP is added to
data/failure.txt
with its error message. - If an IP address is REACHABLE, then this IP is added to
data/success.txt
.
- If an IP address is UNREACHABLE for whatever reason, then this IP is added to
- Reads each IP addresse in
data/success.txt
one by one. - Prompts the user to enter a username and a password.
These username and password will be used for all network devices of those IP addresses in
data/device_ip_list.txt
.
- Initiates a Telnet session to each device one by one using Netmiko.
- Sends commands from
data/config.txt
to the device of that IP address. - Saves the configuration on the device.
- Terminates the session.
- You want to add the same exact set of commands to all the devices in your network. Then this script is the best option for this task.
- Username you are logging in with has
privilege 15
in it. i.e.
username cisco privilege 15 algorithm-type scrypt secret cisco
This Python script does not check for enable mode. It's left to the user to add the
(en)able
command at the very top in thedata/config.txt
file and not set anenable secret
command.
- Enable MultiThreading.