import napalm
# Create a hosts file to include all the target IPs/hostnames that will be SSH'd.
f = open ("/home/eve/hosts")
# Create a .csv file and define all of the columns matching with NAPALM's "get_facts" output.
csv_columns=("FQDN;HOSTNAME;MODEL;OS VERSION;SERIAL NUMBER;UPTIME;VENDOR\n")
file= open("napalm.csv","w")
file.write(csv_columns)
# Create a python loop where it perform the following actions:
# 1. Create the "host" variable where we will extract each line of code on every iteration using strip()
# 2. Define the NAPALM's driver + SSH Username and Password
# 3. Connect to each target host (via SSH) using device.open()
# 4. Perform NAPAM's "get_facts" on the target host in order to get general data from the Cisco device in an "structured" way. This data is stored as a "Dictionary".
# 5. Take each key data (fqdn, hostname, serial_number...) from "getfacts" variable and store it on a separated variable. Note that the variable "get_uptime" was
# converted into a string as integer concatenation with strings wasn't allowed on the next step.
# 6. Define the variable "getfacts_data" where we will join all the previous key variables in a csv format-style. Each iteration will add a new line of code on "napalm.csv"
# with "get_facts" data retrieved on the target host
# 7. Close the file and the SSH sesion
for line in f:
host = line.strip()
driver = napalm.get_network_driver('ios')
device = driver(hostname=host, username='cisco', password='cisco')
device.open()
getfacts = device.get_facts()
get_fqdn = getfacts["fqdn"]
get_hostname = getfacts["hostname"]
get_model = getfacts["model"]
get_osversion = getfacts["os_version"]
get_serialnumber = getfacts["serial_number"]
get_uptime = getfacts["uptime"]
get_uptime_str = str(get_uptime)
get_vendor = getfacts["vendor"]
getfacts_data=(get_fqdn + ";" + get_hostname + ";" + get_model + ";" + get_osversion + ";" + get_serialnumber + ";" + get_uptime_str + ";" + get_vendor + "\n")
file = open("napalm.csv", "a")
file.write(getfacts_data)
file.close
device.close()
# Open "napalm.csv" on Excel and you will see all the different key data on different columns
Comentarios
Publicar un comentario