路由交换设备项目化管理与配置 课件 项目18 基于Python网络自动化运维_第1页
路由交换设备项目化管理与配置 课件 项目18 基于Python网络自动化运维_第2页
路由交换设备项目化管理与配置 课件 项目18 基于Python网络自动化运维_第3页
路由交换设备项目化管理与配置 课件 项目18 基于Python网络自动化运维_第4页
路由交换设备项目化管理与配置 课件 项目18 基于Python网络自动化运维_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目18

基于Python网络自动化运维目录CONTENTS知识链接网络文档、VRP文件系统、网络管理命令项目设计网络拓扑图、IP地址、DNS设计项目描述为微小企业局域网部署链路聚合项目实施与验证链路聚合功能验证0103020401PART020304知识链接1.1基于Python的网络自动化运维0102Python编写的自动化脚本能够很好的执行重复、耗时、有规则的操作。基于Python自动化配置设备步骤:(1)编写配置文件(2)编写Python代码将配置文件推送到设备上,首先用命令行方式写配置脚本,然后通过

Telnet/SSH

将它传到设备上运行。1.2Python简介0102Python是一门完全开源的高级编程语言。Python特点:(1)Python拥有优雅的语法、动态类型具有解释性质。能够让学习者从语法细节的学习中抽离,专注于程序逻辑。(2)Python同时支持面向过程和面向对象的编程。(3)Python可以调用其他语言所写的代码,又被称为胶水语言。由于Python具有非常丰富的第三方库,加上Python语言本身的优点,所以Python在非常多的领域内使用,比如人工智能、数据科学、APP、自动化运维脚本等。(4)Python也存在运行速度慢的缺点。Python是解释型语言,不需要编译即可运行。代码在运行时会逐行地翻译成CPU能理解的机器码,这个翻译过程非常耗时。(5)Python源码不需要编译成二进制代码,它可以直接从源代码运行程序。运行Python代码的时候,Python解释器首先将源代码转换为字节码,然后再由Python虚拟机来执行这些字节码。1.2Python简介0102Python有两种运行方式,交互式运行和脚本式运行。1.2Python简介0102一个完整的Python源码文件一般包含几个组成部分:解释器和编码格式声明、文档字符串、模块导入和运行代码。(1)解释器声明的作用是指定运行本文件的编译器的路径(非默认路径安装编译器或有多个Python编译器)。Windows操作系统上可以省略本例中第一行解释器声明。(2)编码格式声明的作用是指定本程序使用的编码类型,以指定的编码类型读取源代码。Python3默认支持UTF-8编码。(3)文档字符串的作用是对本程序功能的总体介绍。(4)time为Python内置模块,作用是提供处理时间相关的函数。如果在程序中调用标准库或其他第三方库的类时,需要先使用import或from...import语句导入相关的模块。导入语句始终在文件的顶部,在模块注释或文档字符串docstring之后。1.2Python简介0102函数Function是组织好的、可重复使用的一段代码。它能够提高程序的模块化程度和代码利用率。函数使用关键字def定义。模块Module是一个保存好的Python文件。模块可以由函数或者类组成。模块和常规Python程序之间的唯一区别是用途不同,模块用于被其他程序调用。因此,模块通常没有main函数。1.2Python简介0102类Class是用来描述义方法时候必须携带self关键字,它表示类的实例本身。图18-5展示了类与方法的用法。类是具有一类相同的属性和方法的集合。类的定义使用关键字class。被实例化的类的“函数”被称作方法Method。类定更多类的学习,请参考/3/tutorial/classes.html。1.3Paramiko模块使用0102Paramiko模块的使用非常灵活,可以用于自动化运维、远程服务器管理、批量执行命令等各种场景。下面将简单介绍Paramiko模块的安装和使用。1.3.1Paramiko安装Paramiko是Python的一个第三方库,所以需要使用pip安装,安装命令如下。安装完成后,就可以在Python脚本中导入Paramiko模块并开始使用了。pipinstallParamiko1.3Paramiko模块使用01021.3.2Paramiko使用Paramiko是Python实现SSHv2协议的模块,它支持口令认证和公钥认证两种方式。它可以实现安全的远程命令执行、文件传输等功能,Paramiko模块与SSH服务器建立SSH连接如图显示。1.3Paramiko模块使用0102Paramiko常用的两个类为SSHClient和SFTPClient,分别提供SSH和SFTP功能。Paramiko模块与SSH服务器建立SSH连接:(1)首先导入Paramiko模块,然后创建一个SSHClient对象,代码如下。importparamiko#导入Paramiko模块ssh=paramiko.SSHClient()#创建SSHClient对象(2)接下来,可以设置连接参数,如远程主机的IP地址、端口号、用户名和密码。#设置连接参数ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect('remote_host',port=22,username='username',password='password')注意:创建ssh_client对象后,需要设置其missinghostkeypolicy为AutoAddPolicy。否则,当连接主机的密钥不可用时,该连接将被拒绝。AutoAddPolicy表示自动添加远程主机密钥,相当于告诉SSH客户端,如果远程机器不在已知主机列表中,就自动添加,并信任它的密钥。remote_host是远程主机的IP地址或主机名,username和password是登录远程主机的用户名和密码。1.3Paramiko模块使用0102(3)建立SSH连接后,可以使用Paramiko模块执行远程命令。通过调用SSHClient对象的exec_command方法,执行一条远程命令并获取其输出结果。#执行远程命令stdin,stdout,stderr=ssh.exec_command('command')print(stdout.read().decode())(3)建立SSH连接后,也可以调用invoke_shell()方法获取对象,本章节使用invoke_shell()方法获取命令执行情况。#激活teminal终端commend=ssh.invoke_shell()commend.send('command+\n')#向SSH服务器发送命令(4)最后,不要忘记关闭SSH通道,否则会占用连接资源。commend.close()ssh.close()02PART010304项目描述2.1项目简介0102

小李是某公司的网络运维人员,他的工作任务是完善公司的网络搭建。目前公司的局域网已经完成,内部员工的计算机和Web服务器已经接入交换机LSW2,实现了公司局域网内部通信。现需要对公司的出口路由器AR1进行配置,实现对外网的访问。由于小李需要出差,为了完成工作,同时也为了方便后期网络运行维护,小李决定对AR1进行远程配置。项目描述03PART010204项目设计单击输入你的正文3.1总体设计及设计参数0102基于Python网络自动化运维由五部分组成:(1)第一部分是搭建项目环境:设计A公司出口路由器AR1远程登录使用网段为/24,公司内部使用网段为/24,AR1和AR2之间的串口使用/24网段,AR2和AR3之间的串口使用/30,AR3连接的外部网络使用/24网段,AR2、AR3配置OSPF动态路由。(2)第二部分是配置本地环回网卡和桥接Cloud,建立本地计算机与eNSP互联网络设备互联。(3)第三部分是配置AR1为SSH服务器。使能AR1的SSH功能,设计验证模式为AAA。(4)第四部分是编写和运行Python文件,实现AR1接口IP、OSPF协议和NAT配置。(5)第五部分是项目实施结果验证:公司内部网络终端能够通过公网地址与外部网络进行通信。项目设计3.1总体设计及设计参数0102项目设计3.1总体设计及设计参数0102项目设计计算机名IP地址网关NAT地址映射PC154/24Server54/24PC254/24~0PC354/24

序号接口子网号接口IP地址AR1GE0/0/0/2454GE0/0/1/24Serial4/0/0/24AR2Serial4/0/0/241.1.1..2Serial4/0/1/30AR3Serial4/0/0/30GE0/0/0/245404PART010203项目实施与验证单击输入你的正文4.1搭建项目环境01024.1.1配置计算机IP地址项目实施与验证4.1搭建项目环境01024.1.2配置AR2、AR3接口IP地址配置AR2接口IP地址,配置命令如下。<Huawei>sys[Huawei]undoinfo-centerenable[Huawei]intSerial4/0/0[Huawei-Serial4/0/0]ipadd24[Huawei-Serial4/0/0]quit[Huawei]intSerial4/0/1[Huawei-Serial4/0/1]ipadd30[Huawei-Serial4/0/1]quit项目实施与验证4.1搭建项目环境0102配置AR3接口IP地址,配置命令如下。。<Huawei>sys[Huawei]undoinfo-centerenable[Huawei]intSerial4/0/0[Huawei-Serial4/0/0]ipadd30[Huawei-Serial4/0/0]quit[Huawei]intinterfaceGigabitEthernet0/0/0[Huawei-GigabitEthernet0/0/0]ipadd5424[Huawei-GigabitEthernet0/0/0]quit项目实施与验证4.1搭建项目环境01024.1.3.配置OSPF协议在AR2配置OSPF协议。AR1配置命令如下。[Huawei]intLoopBack0[Huawei-LoopBack0]ipadd32[Huawei-LoopBack0]quit[Huawei]ospf1router-id[Huawei-ospf-1]area0[Huawei-ospf-1-area-]network55[Huawei-ospf-1-area-]network项目实施与验证4.2配置本地计算机与eNSP互联0102按照本教材项目2中小型局域网搭建第2.5.3章节,建立本地计算机与eNSP设备互联,这里不再赘述。项目实施与验证4.3配置路由器SSH01024.3.1.配置路由器AR1远程登录IP地址,配置命令如下。<Huawei>sys[Huawei]undoinfo-centerenable[Huawei]sysnameAR1[AR1]interfaceGigabitEthernet0/0/1[AR1-GigabitEthernet0/0/1]ipadd24[AR1-GigabitEthernet0/0/1]q[AR1-ui-vty0-4]authentication-modeaaa[AR1-ui-vty0-4]protocolinboundssh[AR1-ui-vty0-4]return项目实施与验证4.3配置路由器SSH01024.3.2.AR1使能SSH功能,配置AAA认证模式,创建SSH用户名huawei、密码huawei@123及管理权限,配置命令如下。[AR1]stelnetserverenable[AR1]aaa[AR1-aaa]local-userhuaweiprivilegelevel15[AR1-aaa]local-userhuaweipasswordcipherhuawei@123[AR1-aaa]local-userhuaweiservice-typessh[AR1-aaa]q[AR1]user-interfacevty04[AR1-ui-vty0-4]authentication-modeaaa[AR1-ui-vty0-4]protocolinboundssh[AR1-ui-vty0-4]return项目实施与验证4.4编写运行Python文件01024.4.1.编写Python代码实现OSPF配置编写AR1接口配置脚本文件,文件名为接口配置.py,具体代码如下。项目实施与验证importparamikoimporttime

host=""username="huawei"password="huawei@123"

client=paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())client.connect(hostname=host,username=username,password=password)print('Successfullyconnectto'+host)

commend=client.invoke_shell()commend.send('sys\n')commend.send('interfaceSerial4/0/0\n')commend.send('ipadd\n')commend.send('interfaceGigabitEthernet0/0/0\n')commend.send('ipadd54\n')commend.send('return\n')commend.send('save\n')

time.sleep(3)output=commend.recv(65535)print(output.decode("ascii"))

client.close()4.4编写运行Python文件01024.4.2.编写AR1的OSPF配置脚本文件,文件名为OSPF.py,具体代码如下。项目实施与验证importparamikoimporttime

host=""username="huawei"password="huawei@123"

client=Paramiko.SSHClient()client.set_missing_host_key_policy(Paramiko.AutoAddPolicy())client.connect(hostname=host,username=username,password=password)print('Successfullyconnectto'+host)

commend=client.invoke_shell()commend.send('sys\n')commend.send('interfaceSerial4/0/0\n')commend.send('ipadd\n')commend.send('interfaceGigabitEthernet0/0/0\n')commend.send('ipadd54\n')commend.send('q\n')commend.send('ospf1router-id\n')commend.send('area0\n')commend.send('network55\n')commend.send('network55\n')

time.sleep(3)output=commend.recv(65535)print(output.decode("ascii"))

client.close()4.4编写运行Python文件01024.4.3.3.编写Python代码实现NAT配置编写AR1的NAT配置脚本文件,文件名为NAT.py,具体代码如下。项目实施与验证importparamikoimporttime

host=""username="huawei"password="huawei@123"

client=Paramiko.SSHClient()client.set_missing_host_key_policy(Paramiko.AutoAddPolicy())client.connect(hostna

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论