Learn to Read Data from CSV (IP/Config): Python Tutorial| for Configuring Cisco Devices
#CSVPython #CSVReader #CSVDictReader
This Video demonstrates how to read CSV file using Python CSV library reader and dictreader method.How to initiate ssh from paramiko and configure device from csv file.
Read configuration in row or column format.
Create lists and dictionaried from the csv file using python
Storing the csv reader output and storing it in to an iterable format like dictionaris and list in python
How to use for loop for getting data in csv row and column format
Fetch configuration from a csv file and configure device using pyrhon scripts
fetch ip address from the csv file and configure
csv tutorial, csv reader example, csv reader and DictReader difference
csv read data from row, and csv read data from column.
csv to dict or csv to list
cisco configuration from csv
script
————
from csv import DictReader
from pprint import pprint
import paramiko
import time
conf_dict = {}
with open (’02_config_in_column.csv’,’r’) as csv_file:
csv_content = DictReader(csv_file)
column_names = csv_content.fieldnames
# print(column_names)
for row in csv_content:
for column_name in column_names:
if not column_name:
continue
if not row[column_name]:
continue
if column_name not in conf_dict.keys():
conf_dict[column_name]= []
conf_dict[column_name].append(row[column_name])
session = paramiko.SSHClient()
session.load_system_host_keys()
key_file = paramiko.RSAKey.from_private_key_file(“/home/evolve/.ssh/id_rsa”)
for ip in conf_dict.keys():
try:
print(f”n{‘#’ * 50}nConnecting to the Device {ip}n{‘#’ * 50} “)
session.connect(hostname=ip,
username=’admin1′,
# password=’admin’,
pkey=key_file,
)
DEVICE_ACCESS = session.invoke_shell()
print(f”nExecuting Commands aren{‘~’*22}n{conf_dict[ip]}”)
for conf in conf_dict[ip]:
DEVICE_ACCESS.send(conf+’n’)
time.sleep(1)
output = DEVICE_ACCESS.recv(65000)
print (output.decode(‘ascii’),end=”)
time.sleep(.5)
session.close()
except :
print(‘Can not connect to the device’)
print (f”n{‘#’ * 50}nCOMMAND EXECUTION COMPLETEDn{‘#’ * 50}n”)
———————————-
from csv import reader
from pprint import pprint
import paramiko
import time
conf_dict = {}
with open(“01_config_in_row.csv”, “r”) as csv_file:
csv_content = reader(csv_file)
for device in csv_content:
if not device[0]:
continue
if device[0] not in conf_dict.keys():
conf_dict[device[0]] = []
n = len(device)
for conf in range(1,n):
if not device[conf]:
continue
conf_dict[device[0]].append(device[conf])
session = paramiko.SSHClient()
session.load_system_host_keys()
——————
conf Data
conf_dict={‘192.168.0.50’: [‘terminal len 0’,
‘config t’,
‘int gi1’,
‘no shut’,
‘exit’,
‘exit’,
‘show ip int brie’,
‘show run int gi1’],
‘192.168.0.51’: [‘terminal len 0’,
‘config t’,
‘int lo0’,
‘ip add 10.0.0.1 255.255.255.0’,
‘int lo1’,
‘ip add 11.0.0.1 255.255.255.0’,
‘do show run int loopback0’,
‘do show run int loopback1’],
‘192.168.0.53’: [‘terminal len 0’, ‘config t’, ‘int gi3’, ‘no shut’],
‘csr1.test.lab’: [‘terminal len 0’,
‘config t’,
‘int gi2’,
‘no shut’,
‘ip address 2.2.2.2 255.255.255.0’,
‘exit’,
‘exit’,
‘show ip int brie’,
‘show run int gi2’]}
——————-
ip address