خودکارسازی شبکه Python با Netmiko و NAPALM
Python کنترل برنامهنویسی کامل بر روی تجهیزات شبکه میدهد. Netmiko اتصالات SSH را مدیریت میکند؛ NAPALM یک API فروشنده-خنثی فراهم میکند.
نصب
BASH
pip install netmiko napalmNetmiko: اتصال پایه
PYTHON
from netmiko import ConnectHandler
device = {
'device_type': 'mikrotik_routeros',
'host': '192.168.1.1',
'username': 'admin',
'password': 'password',
}
with ConnectHandler(**device) as conn:
output = conn.send_command('/ip address print')
print(output)پشتیبانگیری انبوه از پیکربندی
PYTHON
import json
from datetime import date
from netmiko import ConnectHandler
from pathlib import Path
devices = json.load(open('devices.json'))
backup_dir = Path(f"backups/{date.today()}")
backup_dir.mkdir(parents=True, exist_ok=True)
for device in devices:
try:
with ConnectHandler(**device) as conn:
config = conn.send_command('/export')
Path(backup_dir / f"{device['host']}.txt").write_text(config)
print(f"✓ {device['host']} پشتیبانگیری شد")
except Exception as e:
print(f"✗ {device['host']}: {e}")NAPALM: API فروشنده-خنثی
PYTHON
from napalm import get_network_driver
driver = get_network_driver('ios')
device = driver(hostname='192.168.1.10', username='cisco', password='password')
device.open()
facts = device.get_facts()
print(f"Hostname: {facts['hostname']}")
device.load_merge_candidate(filename='changes.txt')
print(device.compare_config())
device.commit_config()
device.close()