本文共 2669 字,大约阅读时间需要 8 分钟。
本模块旨在简化Paramiko库与网络设备之间的SSH连接,适用于Windows与Unix平台的操作环境。通过本模块,可以方便地实现对支持设备的远程管理与配置操作。
本模块目前支持的设备包括:
官方支持设备
Arista vEOS、Cisco ASA、Cisco IOS、Cisco IOS-XE、Cisco IOS-XR、Cisco NX-OS、Cisco SG300、HP Comware7、HP ProCurve、Juniper Junos、Linux有限支持设备
Alcatel AOS6/AOS8、Apresia Systems AEOS、Calix B6、Cisco AireOS(无线路由器控制器)、Dell OS9 (Force10)、Dell OS10、Dell PowerConnect、Extreme ERS (Avaya)、Extreme VSP (Avaya)、Extreme VDX (Brocade)、Extreme MLX/NetIron (Brocade/Foundry)、Huawei、IP Infusion OcNOS、Mellanox、NetApp cDOT、OneAccess、Palo Alto PAN-OS、Pluribus、Ruckus ICX/FastIron、Ubiquiti EdgeSwitch、Vyatta VyOS实验设备
A10、Accedian、Aruba、Ciena SAOS、Citrix Netscaler、Cisco Telepresence、Check Point GAiA、Coriant、Dell OS6、Dell EMC Isilon、Eltex、Enterasys、Extreme EXOS、Extreme Wing、Extreme SLX (Brocade)、F5 TMSH、F5 Linux、Fortinet、MRV Communications OptiSwitch、Nokia/Alcatel SR-OS、QuantaMesh、Rad ETX本模块的开发基于以下环境:
安装netmiko模块前,需先安装以下前置模块:
# 前提准备模块(安装netmiko可自动下载依赖项)Paramiko >= 2.4.1SCP >= 0.10.0PyYAMLPySerialTextfsm# 安装netmikopip install netmiko
注意:如尚未安装上述前置模块,在运行代码时可能会报错,需确保所有依赖项已正确安装。
from netmiko import ConnectHandler# 设定设备信息cisco = { 'device_type': 'cisco_ios', 'host': 'IP地址', 'username': '用户名', 'password': '密码'}# 初始化连接net_connect = ConnectHandler(**cisco)# 获取当前视图current_view = net_connect.find_prompt()print(current_view)# 发送查看命令并获取输出output = net_connect.send_command('show ip int brief')print(output)# 如果在Windows环境下输出不支持换行,执行以下格式化处理# o_list = output.split("\n")# for line in o_list:# print(line) from netmiko import ConnectHandler# 设定设备信息cisco = { 'device_type': 'cisco_ios', 'host': 'IP地址', 'username': '用户名', 'password': '密码'}# 初始化连接net_connect = ConnectHandler(**cisco)# 配置命令列表config_commands = ['interface GigabitEthernet1/0/29', 'shutdown']# 提交配置命令input = net_connect.send_config_set(config_commands)# 验证配置结果output = net_connect.send_command('show run inter gi1/0/29')print(output)# 如果在Windows环境下输出不支持换行,执行以下格式化处理# o_list = output.split("\n")# for line in o_list:# print(line) net_connect.send_command():向设备发送命令并获取基于模式的输出net_connect.send_command_timing():向设备发送命令并获取基于时序的详细输出net_connect.send_config_set():将配置命令发送至远程设备net_connect.send_config_from_file():从文件加载配置命令并发送至设备net_connect.save_config():将running-config保存至startup-confignet_connect.enable():进入启用模式net_connect.find_prompt():获取当前设备提示符net_connect.commit():在Juniper和IOS XR设备上执行提交操作net_connect.disconnect():关闭设备连接net_connect.write_channel():低级别通道写入操作net_connect.read_channel():低级别通道读取操作本文旨在为网络管理与自动化操作提供Python netmiko模块的实用指南,帮助网络管理员高效完成设备配置与管理任务。
转载地址:http://zdcfk.baihongyu.com/