132 lines
3.7 KiB
Python
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() |