iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现网络自动化eNSP
  • 232
分享到

Python实现网络自动化eNSP

Python网络自动化eNSPPython网络自动化 2022-06-02 22:06:10 232人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1.使用Paramiko登陆到单台交换机实验拓扑实验要求2.使用Paramiko登陆到连续子网交换机实验拓扑实验要求实验步骤3.Paramiko登陆不连续子网交换机实验拓扑实验要求4.sys.argv[ ] 实现

目录
  • 1.使用Paramiko登陆到单台交换机
    • 实验拓扑
    • 实验要求
  • 2.使用Paramiko登陆到连续子网交换机
    • 实验拓扑
    • 实验要求
    • 实验步骤
  • 3.Paramiko登陆不连续子网交换机
    • 实验拓扑
    • 实验要求
  • 4.sys.argv[ ] 实现灵活调用脚本所需文件
    • 实验拓扑
    • 实验要求
    • 实验步骤
  • 5.ssh连接失败处理

    1.使用Paramiko登陆到单台交换机

    实验拓扑

    云彩桥接到本机环回接口:192.168.1.1/24
    三层交换机IP:192.168.1.2/24

    在这里插入图片描述

    实验要求

    使用python Paramiko 模块实现SSH 登录单个交换机(192.168.56.2/24),配置LoopBack0地址:1.1.1.1/32。配置完成后,保存退出。

    实验步骤 配置交换机管理地址,并测试与主机虚拟网卡连通性

    
    [Huawei]vlan 10
    [Huawei]int vlan 10
    [Huawei-Vlanif10]ip add 192.168.1.2 24
    [Huawei-GigabitEthernet0/0/1]port link-type access 
    [Huawei-GigabitEthernet0/0/1]port default vlan 10
    

    在这里插入图片描述

    在这里插入图片描述

    配置三层交换机开启 SSH 服务端,配置 SSH 账号密码。

    
    [Huawei]user-interface vty 0 4
    [Huawei-ui-vty0-4]authentication-mode aaa
    [Huawei-ui-vty0-4]protocol inbound ssh
    [Huawei-aaa]local-user Python passWord cipher 123
    [Huawei-aaa]local-user python privilege level 3
    [Huawei-aaa]local-user python service-type ssh 
    [Huawei]stelnet server enable 
    [Huawei]ssh authentication-type default password 
    

    Python代码

    
    import paramiko
    import time
    
    ip = '192.168.56.2'
    username = 'python'
    password = '123'
    
    ssh_client = paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) //默认情况下,Paramiko会拒绝任何未知的SSH public keys,使用此函数使其接收来自交换机提供的public keys。
    ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)
    print('Successfully connect to ' + ip)
    
    commend = ssh_client.invoke_shell()
    commend.send('sys\n')
    commend.send('interface LoopBack 0\n')
    commend.send('ip add 1.1.1.1 255.255.255.255\n')
    commend.send('return\n')
    commend.send('save\n')
    commend.send('y\n')
    
    time.sleep(3) //稍等3秒,然后执行以下操作
    output = commend.recv(65535) //截取本次运行script后的所有输出记录,将其assign给output变量
    print(output.decode("ascii"))
    
    ssh_client.close()
    

    查看运行结果

    在这里插入图片描述

    在交换机上查看

    在这里插入图片描述

    也可以在交换机上debuggiing ip packet可以看到日志

    2.使用Paramiko登陆到连续子网交换机

    实验拓扑

    连续子网三层交换机:管理地址 192.168.1.2/24 to 192.168.1.5/24

    在这里插入图片描述

    实验要求

    登陆到各台交换机,并为其配置vlan 11 to 15,保存配置并退出。

    实验步骤

    配置管理口IP地址,并配置SSH Server 登陆名以及密码等

    python代码

    
    import paramiko
    import time
    
    #import getpass
    #username = input('Username: ')
    #password = getpass.getpass('Password: ') //PyCharm中该模块运行没反应,用户名和密码还是直接写的
    
    username = 'python'
    password = '123'
    
    for i in range(2, 6):
        ip = '192.168.1.' + str(i)
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)
        command = ssh_client.invoke_shell()
        print('Successfully connect to ' + ip)
        command.send('sys\n')
        for j in range(11, 16):
            print('正在创建VLAN: ' + str(j))
            command.send('vlan ' + str(j) + '\n')
            time.sleep(1)
        command.send('return\n')
        command.send('save\n')
        command.send('y\n')
        time.sleep(2)
        output = command.recv(65535).decode('ascii')
        print(output)
    
    ssh_client.close()
    

    运行结果

    在这里插入图片描述

    在这里插入图片描述

    3.Paramiko登陆不连续子网交换机

    实验拓扑

    将交换机LSW5的管理接口ip更改为192.168.1.6/24,使交换机ip不在同一网段

    在这里插入图片描述

    实验要求

    使用Paramiko登陆四台ip不连续的交换机,并给其配置vlan11 to 15

    实验步骤

    创建一个文本文档,将需要配置的交换机的ip地址写入,这里我在Desktop下创建了一个名为ip.txt文档

    在这里插入图片描述

    使用open函数,打开文件,进行操作,实现不连续子网调用

    
    import paramiko
    import time
    
    username = 'python'
    password = '123'
    
    f = open('C:/Users/DELL/Desktop/ip.txt', 'r')
    for line in f.readlines():
        ip = line.strip()
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(hostname=ip, username=username, password=password)
        print('Successfully connect to ', ip)
        command = ssh_client.invoke_shell()
        command.send('sys\n')
        command.send('vlan batch 11 to 15\n')
        time.sleep(2)
        command.send('return\n')
        command.send('save\n')
        command.send('y\n')
        time.sleep(2)
        output = command.recv(65535).decode('ascii')
        print(output)
    
    f.close()
    ssh_client.close()
    

    查看运行结果

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    4.sys.argv[ ] 实现灵活调用脚本所需文件

    实验拓扑

    假设1.2和1.3为一组,1.4和1.6为一组

    在这里插入图片描述

    实验要求

    同时修改不同型号设备的配置,给SW1/3配置vlan11 to 15,SW4/5配置vlan16 to 20

    实验步骤

    创建两个名为ip1.txt,command1.txt的文件,存储1组的ip和要进行的配置

    在这里插入图片描述

    同样创建两个名为ip2.txt,command2.txt文件,存储2组的ip和要进行的配置

    在这里插入图片描述

    在这里插入图片描述

    python代码

    
    import paramiko
    import time
    import sys
    
    username = 'python'
    password = '123'
    
    ip_file = sys.argv[1]
    cmd_file = sys.argv[2]
    
    iplist = open(ip_file)
    for line in iplist.readlines():
        ip = line.strip()
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(hostname=ip, username=username, password=password)
        print('Successfully connect to ', ip)
        command = ssh_client.invoke_shell()
        cmdlist = open(cmd_file, 'r')
        cmdlist.seek(0)
        for line in cmdlist.readlines():
            command.send(line + '\n')
            time.sleep(5)
        cmdlist.close()
        output = command.recv(65535)
        print(output)
    
    iplist.close()
    ssh_client.close()
    

    查看运行结果(pycharm不可以使用argv,在cmd里使用)

    在这里插入图片描述

    5.SSH连接失败处理

    
    import paramiko
    import time
    import sys
    import Socket
    import getpass
    
    username = input('Username: ')
    password = getpass.getpass('Password: ')
    ip_file = sys.argv[1]
    cmd_file = sys.argv[2]
    
    switch_with_authentication_issue = []
    switch_not_reachable = []
    
    iplist = open(ip_file, 'r')
    for line in iplist.readlines():
        try:
            ip = line.strip()
            ssh_client = paramiko.SSHClient()
            ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
            ssh_client.connect(hostname=ip, username=username, password=password,look_for_keys=False)
            print('Successfully connect to ' + ip)
            command = ssh_client.invoke_shell()
            cmdlist = open(cmd_file, 'r')
            cmdlist.seek(0)
            for cmd in cmdlist.readlines():
                command.send(cmd + '\n')
            time.sleep(1)
            cmdlist.close()
            output = command.recv(65535)
            print(output.decode("ascii"))
        except paramiko.ssh_exception.AuthenticationException:
            print('User authentication failed for ' + ip + '.')
            switch_with_authentication_issue.append(ip)
        except TimeoutError:
            switch_not_reachable.append(ip)
    
    iplist.close()
    ssh_client.close()
    
    print('\nUser authentication failed for below switches: ')
    for i in switch_with_authentication_issue:
        print(i)
    
    print('\nBelow switchs are not reachable: ')
    for i in  switch_not_reachable:
        print(i)
    

    到此这篇关于Python实现网络自动化eNSP的实现的文章就介绍到这了,更多相关Python 网络自动化 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

    --结束END--

    本文标题: Python实现网络自动化eNSP

    本文链接: https://www.lsjlt.com/news/10782.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python如何实现网络自动化eNSP
      这篇文章主要介绍了Python如何实现网络自动化eNSP,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.使用Paramiko登陆到单台交换机实验拓扑云彩桥接到本机环回接口:...
      99+
      2023-06-15
    • Python实现自动化网页操作
      编程语言:python 集成开发环境(IDE):Visual Studio Code 配置方法参照Visual Studio Code配置Python编程环境 目录 1 准备1.1 安装...
      99+
      2023-09-02
      python 自动化 chrome selenium
    • Python自动化运维实战——Telnetlib和Netmiko自动化管理网络设备
      ❤️博客主页: iknow181🔥系列专栏: Python、JavaSE、JavaWeb、CCNP🎉欢迎大家点赞👍收藏⭐评论✍ 目录 一、前言 二、准备工作 三、Telnetlib Te...
      99+
      2023-10-22
      自动化 网络 服务器
    • python自动化实现自动回复QQ消息
      目录前言1.需要安装的相关软件和python模块2. 连接手机3.测试是否连接成功4.代码实现5. 总结前言 近段时间,看了一下运用python实现app自动化的视频,觉得那上面的讲...
      99+
      2024-04-02
    • Python自动化实现抖音自动刷视频
      目录环境准备实现环境准备 Python3.5以上Appium Server服务器Android SDK,需要用到adb服务需要依赖Appium-Python-Client组件库真机或...
      99+
      2023-03-19
      Python 抖音自动刷视频 Python 抖音自动
    • python实现hive自动化测试
      本程序主要实现hive权限测试。系统中有管理员用户single和测试用户test。在路径/home/test/下,将用例和预期结果写在xml文件中。        执 行过程:kinit single用户,beeline -u -e登录并执...
      99+
      2023-01-31
      测试 python hive
    • Appium+Python实现自动化登录
      #Appium+Python实现自动化测试 Appium简介 官方的概述为: Appium is an open source test automation framework for use with native, hybrid...
      99+
      2023-01-31
      Appium Python
    • 使用Python实现微信自动化
      Python中可以导入wxpy模块,在电脑上操作控制微信。 ...
      99+
      2023-01-31
      Python
    • Python中怎么实现SQL自动化
      这篇文章给大家介绍Python中怎么实现SQL自动化,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。从基础开始import pyodbc from datetime import&...
      99+
      2023-06-16
    • Python如何实现自动化办公
      这篇文章主要介绍了Python如何实现自动化办公,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的...
      99+
      2023-06-22
    • python如何实现自动化运维
      1、安装pip install paramiko2、导入模块import paramiko3、使用def initSshClinet(): ''' 初始化,SSH连接账号密码登录服务器 :return: sshCli...
      99+
      2023-05-17
      Python
    • windows中python实现自动化部署
      目录一、python脚本二、windows部署定时任务这段时间遇到一个需求是如果库里面有没有图片的数据,则访问我们的网站生成图片数据并更新库,要求每隔一段时间就要检测。 该需求主要为...
      99+
      2024-04-02
    • Python怎么实现自动化测试
      本篇文章为大家展示了Python怎么实现自动化测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码...
      99+
      2023-06-14
    • Python实现自动化发送邮件
      目录开门见山自动化发送邮件SMTP 介绍开启SMTP服务邮件的属性配置发送文本邮件发送HTML邮件发送附件邮件后记总结开门见山 自动化测试过程中,一般测试结果都会以邮件的形式发送给相...
      99+
      2024-04-02
    • 华为ensp模拟校园网/企业网实例(XX学校网络设计与实现)
      目录 1.网络需求分析 1.1 功能需求分析 1.2 技术需求分析 1.3 网络安全需求分析 2.校园局域网设计 2.1 拓扑图 2.2 IP 规划和 VLAN 划分 2.3 核心层设备配置 2.3.2 ospf配置 2.3.3  ACL...
      99+
      2023-09-11
      网络 服务器 运维
    • Python 自动化处理Excel和Word实现自动办公
      今天我来分享一些Python办公自动化的方法,欢迎收藏学习,喜欢点赞支持,欢迎畅聊。 Openpyxl Openpyxl 可以说是 Python 中最通用的工具模块了,它使与 Exc...
      99+
      2024-04-02
    • python自动化如何实现自动回复QQ消息
      这篇文章主要介绍了python自动化如何实现自动回复QQ消息,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.需要安装的相关软件和python模块1 安装client模块打开...
      99+
      2023-06-14
    • 三大原因让网络走向自动化
        在工业数字化、物联网、5G移动网的部署进程里,网络自动化和智能化变得至关重要,然而两者却不能混为一谈。网络自动化是基础、雏形,是未来网络的初级阶段,而网络智能化则是进阶、发展,是未来网络的高级阶段。可以说,智能化是网络自动化的升级版。不...
      99+
      2023-06-05
    • 使用python来实现报表自动化
      本文转载于http://blog.csdn.net/coraline_mviewmode=contents 本篇文章将介绍:xlwt 常用功能xlrd 常用功能xlutils 常用功能xlwt写Excel时公式的应用xlwt写入特定目录(路...
      99+
      2023-01-31
      来实现 报表 python
    • 怎么用Python实现报表自动化
      Excel的基本组成我们一般在最开始做报表的时候,基本都是从Excel开始的,都是利用Excel在做报表,所以我们先了解下Excel的基本组成。下图是Excel的中各个部分的组成关系,我们工作中每天会处理很多Excel文件,一个Excel文...
      99+
      2023-05-17
      Python
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作