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

    你可能感兴趣的文章
    mysql级联删除_Mysql笔记系列,DQL基础复习,Mysql的约束与范式
    查看>>
    mysql经常使用命令
    查看>>
    MySQL经常使用技巧
    查看>>
    mysql给账号授权相关功能 | 表、视图等
    查看>>
    MySQL缓存使用率超过80%的解决方法
    查看>>
    Mysql缓存调优的基本知识(附Demo)
    查看>>
    mysql网站打开慢问题排查&数据库优化
    查看>>
    mysql网络部分代码
    查看>>
    mysql联合索引的最左前缀匹配原则
    查看>>
    mysql自动化同步校验_Shell: 分享MySQL数据同步+主从复制自动化脚本_20190313_七侠镇莫尛貝...
    查看>>
    mysql自增id超大问题查询
    查看>>
    MySQL自带information_schema数据库使用
    查看>>
    MySQL获取分组后的TOP 1和TOP N记录
    查看>>
    mysql虚拟列表_动态网页制作-官方版合集下载-多特
    查看>>
    MySQL蜜罐反制获取攻击者信息
    查看>>
    Mysql表创建外键报错
    查看>>
    mysql表格调取数据库信息_MySQL™ 参考手册(获取有关数据库和表的信息)
    查看>>
    mysql表检查分析优化
    查看>>
    WARN: Establishing SSL connection without server‘s identity verification is not recommended.
    查看>>
    MySQL视图
    查看>>