博客
关于我
netmiko 自动判断设备类型python_Python netmiko模块的使用
阅读量:791 次
发布时间: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/

    你可能感兴趣的文章
    NEO改进协议提案1(NEP-1)
    查看>>
    Neo私链
    查看>>
    NervanaGPU 项目使用教程
    查看>>
    Nerves 项目教程
    查看>>
    nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.
    查看>>
    nestesd exception is java .lang.NoSuchMethodError:com.goolge.common.collect
    查看>>
    nestJS学习
    查看>>
    net core 环境部署的坑
    查看>>
    NET Framework安装失败的麻烦
    查看>>
    Net 应用程序如何在32位操作系统下申请超过2G的内存
    查看>>
    Net.Framework概述
    查看>>
    NET3.0+中使软件发出声音[整理篇]<转>
    查看>>
    net::err_aborted 错误码 404
    查看>>
    NetApp凭借领先的混合云数据与服务把握数字化转型机遇
    查看>>
    NetAssist网络调试工具使用指南 (附NetAssist工具包)
    查看>>
    Netbeans 8.1启动参数配置
    查看>>
    NetBeans IDE8.0需要JDK1.7及以上版本
    查看>>