Fin du TP2

This commit is contained in:
2025-11-14 21:30:34 +01:00
parent 72a79ee83f
commit adc251afe6
25 changed files with 819 additions and 38 deletions

View File

@@ -1,56 +1,123 @@
import json
from napalm import get_network_driver
def save_built_config(file_name, data):
with open(file_name, "w") as f:
f.write(data)
return file_name
def get_inventory():
pass
"""
Lit le fichier inventory/hosts.json et retourne son contenu.
"""
inventory_file = "inventory/hosts.json"
try:
with open(inventory_file, "r") as f:
data = json.load(f)
return data
except FileNotFoundError:
print(f"Erreur : le fichier {inventory_file} n'existe pas.")
return []
def get_json_data_from_file(file):
pass
def question_26(device):
pass
command = ['show ip interface brief']
output = device.cli(command)
def question_27(device):
pass
def question_28(device):
pass
command = ['show ip interface brief']
output = device.cli(command)
print(type(output))
def question_29(device):
pass
#output = device.get_config()
output = device.get_arp_table()
print(output)
def question_30(device):
pass
output = device.get_arp_table()
print(type(output))
def question_31():
pass
device.load_merge_candidate(filename='config/loopback_R01.conf')
print(device.compare_config())
device.commit_config()
def question_32():
pass
def question_33():
r01 = {
'hostname': '172.16.100.62',
'username': 'cisco',
'password': 'cisco'
}
r02 = {
'hostname': '172.16.100.190',
'username': 'cisco',
'password': 'cisco'
}
r03 = {
'hostname': '172.16.100.254',
'username': 'cisco',
'password': 'cisco'
}
routers = {'1': r01, '2': r02, '3': r03}
def question_34():
pass
for i in range(1, 4):
driver = get_network_driver('ios')
device = driver(**routers[str(i)])
device.open()
device.load_merge_candidate(filename=f'config/ospf_R{i}.conf')
print(device.compare_config())
device.commit_config()
device.close()
def question_35():
liste_hosts = get_inventory()
for host in liste_hosts:
nom_host = host['hostname']
connexion_info = {
'hostname': host['ip'],
'username': host['username'],
'password': host['password']
}
try:
driver_ios = get_network_driver('ios')
device = driver_ios(**connexion_info)
device.open()
config_sauvegarde = device.get_config()
with open(f'backup/{nom_host}.bak', 'w') as fichier_sauvegarde:
fichier_sauvegarde.write(str(config_sauvegarde))
device.close()
except Exception as erreur:
print(f"Erreur lors de la connexion à {nom_host} : {erreur}")
continue
if __name__ == "__main__":
r01 = {
'hostname':'xx.xx.xx.xx',
'username': "xx",
'password': "xx"
'hostname':'172.16.100.62',
'username': "cisco",
'password': "cisco"
}
# driver = get_network_driver('ios')
# device = driver(**r01)
# device.open()
driver = get_network_driver('ios')
device = driver(**r01)
device.open()
#question_26(device)
#question_27(device)
@@ -58,5 +125,5 @@ if __name__ == "__main__":
#question_29(device)
#question_30(device)
#question_31()
#question_32()
#question_34()
#question_33()
question_35()