博客
关于我
netmiko 自动判断设备类型python_Python netmiko模块的使用
阅读量:794 次
发布时间:2023-02-14

本文共 2669 字,大约阅读时间需要 8 分钟。

Python netmiko模块的使用指南

模块简介

本模块旨在简化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

实验环境配置

本模块的开发基于以下环境:

  • 操作系统:Win10
  • Python版本:Python 3.6.6
  • netmiko模块版本:2.3.0

模块安装

安装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-config
  • net_connect.enable():进入启用模式
  • net_connect.find_prompt():获取当前设备提示符
  • net_connect.commit():在Juniper和IOS XR设备上执行提交操作
  • net_connect.disconnect():关闭设备连接
  • net_connect.write_channel():低级别通道写入操作
  • net_connect.read_channel():低级别通道读取操作

参考资料

  • 网页文章
  • GitHub项目仓库
  • 本文旨在为网络管理与自动化操作提供Python netmiko模块的实用指南,帮助网络管理员高效完成设备配置与管理任务。

    转载地址:http://zdcfk.baihongyu.com/

    你可能感兴趣的文章
    Navicat连接mysql数据库中出现的所有问题解决方案(全)
    查看>>
    Navicat连接Oracle出现Oracle library is not loaded的解决方法
    查看>>
    Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
    查看>>
    Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
    查看>>
    navicat连接远程mysql数据库
    查看>>
    Navicat通过存储过程批量插入mysql数据
    查看>>
    Navicat(数据库可视化操作软件)安装、配置、测试
    查看>>
    navigationController
    查看>>
    NB-IOT使用LWM2M移动onenet基础通信套件对接之APN设置
    查看>>
    NBear简介与使用图解
    查看>>
    Vue过滤器_使用过滤器进行数据格式化操作---vue工作笔记0015
    查看>>
    Ncast盈可视 高清智能录播系统 IPSetup.php信息泄露+RCE漏洞复现(CVE-2024-0305)
    查看>>
    NCNN中的模型量化解决方案:源码阅读和原理解析
    查看>>
    NCNN源码学习(1):Mat详解
    查看>>
    nc命令详解
    查看>>
    NC综合漏洞利用工具
    查看>>
    ndarray 比 recarray 访问快吗?
    查看>>
    ndk-cmake
    查看>>
    NdkBootPicker 使用与安装指南
    查看>>
    ndk特定版本下载
    查看>>