PythonRéseauAutomatisation

Python pour l'automatisation réseau : Netmiko, NAPALM et Nornir

1 avril 2026 · Sphinx-Digital

L’automatisation réseau avec Python a explosé ces dernières années. Trois bibliothèques dominent l’écosystème : Netmiko, NAPALM et Nornir. Chacune répond à un besoin différent.

Netmiko : SSH multi-vendor simplifié

Netmiko est une couche d’abstraction sur Paramiko qui prend en charge les particularités de chaque équipementier (Cisco IOS, Juniper, Arista, HP…).

from netmiko import ConnectHandler

device = {
    'device_type': 'cisco_ios',
    'host': '192.168.1.1',
    'username': 'admin',
    'password': 'secret',
}

with ConnectHandler(**device) as conn:
    output = conn.send_command('show ip interface brief')
    print(output)
    
    # Configurer
    commands = [
        'interface GigabitEthernet0/1',
        'description Uplink-vers-core',
        'no shutdown',
    ]
    conn.send_config_set(commands)

Idéal pour : les opérations ponctuelles, les scripts de collecte de données, les environnements multi-vendor sans API REST disponible.

NAPALM : abstraction multi-OS orientée état

NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) propose une API unifiée qui abstrait les différences entre OS réseau.

from napalm import get_network_driver

driver = get_network_driver('eos')  # Arista EOS
device = driver('192.168.1.1', 'admin', 'secret')
device.open()

# Récupérer l'état — même API pour Cisco, Juniper, Arista
facts = device.get_facts()
interfaces = device.get_interfaces()

# Comparer la configuration actuelle avec celle désirée
device.load_merge_candidate(filename='desired.cfg')
diff = device.compare_config()
print(diff)
device.commit_config()
device.close()

Idéal pour : la validation de configuration, la comparaison avant/après changement, les workflows de change management.

Nornir : orchestration multi-équipements parallèle

Nornir est un framework d’orchestration qui exécute des tâches sur des inventaires d’équipements en parallèle. Là où Netmiko gère un équipement à la fois, Nornir en gère des centaines simultanément.

from nornir import InitNornir
from nornir_netmiko.tasks import netmiko_send_command
from nornir_utils.plugins.functions import print_result

nr = InitNornir(config_file="config.yaml")

# Filtrer par groupe ou tag
core_switches = nr.filter(role="core")

# Exécuter en parallèle sur tous les équipements filtrés
result = core_switches.run(
    task=netmiko_send_command,
    command_string="show version"
)
print_result(result)

Idéal pour : les opérations à grande échelle, l’audit de parc réseau, les déploiements de configuration en masse.

Quelle bibliothèque choisir ?

Besoin ponctuel / petit parc → Netmiko
Validation d'état / change management → NAPALM  
Large parc / opérations en masse → Nornir

Les trois ne s’excluent pas : Nornir peut utiliser Netmiko et NAPALM comme backends. Une architecture courante : Nornir pour l’orchestration + NAPALM pour l’abstraction multi-vendor.

Notre formation Python pour l’automatisation inclut un module réseau avec des labs sur ces trois bibliothèques.