Files
Automatisation-Reseau/TP-02/scripts/run_netmiko.py
2025-11-13 11:53:55 +01:00

132 lines
3.7 KiB
Python

import json
from netmiko import ConnectHandler
def question_9(net_connect):
print(net_connect.__dict__)
print("Adresse IP :", net_connect.host)
print("Device type :", net_connect.device_type)
def question_10(net_connect):
output = net_connect.send_command("show ip interface brief")
print(output)
def question_11(net_connect):
output = net_connect.send_command("show ip interface brief", use_textfsm=True)
print(type(output))
def question_12(net_connect):
pass
def question_13(net_connect):
output = net_connect.send_command("show ip route", use_textfsm=True)
print(output)
print(type(output))
def question_14(net_connect):
interfaces_status = net_connect.send_command("show ip interface brief", use_textfsm=True)
print("État des interfaces du routeur R1 :")
#print(interfaces_status)
for iface in interfaces_status:
intf_name = iface['interface']
print(f"\nConfiguration de l'interface {intf_name} :")
config = net_connect.send_command(f"show run interface {intf_name}")
print(config)
def question_15(net_connect):
# Liste de commandes pour créer l'interface Loopback
loopback_cmds = [
"interface loopback1",
"ip address 192.168.1.1 255.255.255.255",
"description loopback interface from netmiko",
"no shutdown"
]
# Exécution des commandes en mode configuration
output = net_connect.send_config_set(loopback_cmds)
print("Résultat de la configuration :")
print(output)
# Sauvegarder la configuration
save_output = net_connect.save_config()
print("\nConfiguration sauvegardée :")
print(save_output)
def question_16(net_connect):
# Exécution en mode configuration
output = net_connect.send_config_set("no interface loopback1")
print("Résultat de la suppression de loopback1 :")
print(output)
# Sauvegarder la configuration
save_output = net_connect.save_config()
print("\nConfiguration sauvegardée après suppression :")
print(save_output)
def question_17(net_connect):
# Lire les commandes depuis le fichier
with open("config/loopback_R01.conf", "r") as f:
commands = [line.strip() for line in f if line.strip()] # ignore les lignes vides
# Exécuter les commandes en mode configuration
output = net_connect.send_config_set(commands)
print("Résultat de l'exécution des commandes :")
print(output)
# Sauvegarder la configuration
save_output = net_connect.save_config()
print("\nConfiguration sauvegardée :")
print(save_output)
def question_18(net_connect):
for i in range(1, 5):
loopback_name = f"loopback{i}"
commands = [f"no interface {loopback_name}"]
print(f"\nSuppression de l'interface {loopback_name} :")
output = net_connect.send_config_set(commands)
print(output)
# Sauvegarder la configuration
save_output = net_connect.save_config()
print("\nConfiguration sauvegardée :")
print(save_output)
def get_inventory():
pass
def question_20():
pass
def question_21():
pass
if __name__ == "__main__":
r01 = {
'device_type': 'cisco_ios',
'host': '172.16.100.126',
'username': 'cisco',
'password': 'cisco'
}
net_connect = ConnectHandler(**r01)
#question_9(net_connect)
#question_10(net_connect)
#question_11(net_connect)
#question_12(net_connect)
#question_13(net_connect)
#question_14(net_connect)
#question_15(net_connect)
#question_16(net_connect)
#question_17(net_connect)
question_18(net_connect)
# hosts = get_inventory()
# print(hosts)
#question_20()
#question_21()
net_connect.disconnect()