Python Network Programmability: Scaling Scripts 中文字幕
Python扩展脚本网络编程教程 中文字幕Python Network Programmability: Scaling Scripts
仅使用CLI配置网络的日子即将结束
Python扩展了网络编程的功能,允许您构建复杂的脚本,可以轻松扩展以满足您的网络需求
本培训课程介绍如何使用Netmiko-Python库进行网络硬件的SSH管理 - 编写脚本以执行大量网络配置
讲师David Bombal通过使用一个连接和一个命令从一个简单的脚本迭代来演示如何配置Cisco路由器和交换机
他展示了如何随着时间的推移增长和改进代码,构建一个功能强大的脚本,可以从文件中读取多个命令和多个IP,提示用户凭据,处理 错误和查找特定设备
他还展示了如何使用加密密码和多线程来扩展脚本,这允许您同时执行多个命令
- [讲师]迭代,换句话说,先从一些代码开始,然后对其进行改进,然后再次改进,再次改进。
不断改进您的代码以实现更多目标。
不要试图一气呵成。
俗话说,罗马不是一天建成的。
婴儿不参加马拉松比赛。
他们翻身,然后他们爬行,然后他们走路,然后他们跑,当他们长大,变得更自信。
所以在这里一样,从小开始,然后增长你的脚本或迭代你的脚本。
在第一个脚本中,我们将连接到单个设备。
192.168.122.72,并运行命令show IP interface brief。
该设备是拓扑中的第一个交换机。
所以我们要到这个Ubuntu主机到SSH,到交换机,并返回show IP interface brief。
那么我们要做的是迭代并更改脚本以使用命令文件。
因此,我们将打开一个名为commands_file的文件,读取文件中的命令,然后将这些命令发送到交换机。
在这两个脚本中,我们使用Netmiko连接到交换机然后执行某些操作。
在第一个脚本中,我们运行单个命令,显示IP接口简介。
在第二个脚本中,我们可以根据名为commands_file的文件向交换机发送多个命令。
您可以在此处使用任何文件名。
这只是我用过的文件名。
我这里也有一个列表,而不是指向一个设备,我有一个由IOS设备组成的循环。
现在,您可以通过将其添加到此列表中来添加其他设备。
但是,我们要迭代并使用带有设备IP地址的文件,而不是这样做。
所以我们有一个for循环,它允许我们连接到设备文件中指定的多个设备。
我将在后续视频中更详细地讨论这些脚本中的每一个。
这只是对各种脚本的概述。
在脚本四中,我们将提示输入用户名和密码。
因此,我们不是在脚本中嵌入用户名和密码,而是提示用户提供该信息。
在脚本五中,我们将实现一些错误处理。
如果设备不可用会怎样?
那么如果我们对设备超时会发生什么?
如果验证失败会发生什么?
或者交换机上没有启用SSH的另一个问题?
或者VTY线路不允许SSH?
所以我们要做的就是使用异常,而不是破坏脚本,在Python中我们可以捕获错误。
所以我们将尝试连接到设备,并根据异常或错误我们将要做的事情。
如果没有错误,我们将连接到设备并运行命令列表。
这将在设备文件中指定的多个设备上完成,我们将运行命令文件中指定的多个命令。
我们要做的是再次迭代并拥有多个命令文件。
一个用于交换机,一个用于本例中的路由器。
因此,当我们连接到设备时,我们将首先进行一些错误检查,然后我们要做的是查看设备列表。
看到我有一些设备,如VIOS第二层高级企业。
那是一个病毒式的IOS二层交换机。
在这里,我有一个病毒式IOSV路由器。
这两个选项考虑了此拓扑中的这些交换机和路由器。
但另外,我有一台Cisco 1900路由器和3750路由器。
那些是我通过我的Nat云连接的物理设备。
这些是我本地网络中的物理设备。
因此,根据设备类型,我们可以做的是运行不同的命令。
在这个脚本的第一个版本中,我只是在寻找IOSV第二层交换机和IOSV路由器,然后运行一个命令列表,具体取决于它是哪个设备,无论是路由器还是交换机。
然后我将再次迭代,并在1900和3750交换机上运行不同的命令。
所以我们从14行代码迭代到74行代码,然后进一步扩展。
所以故事的寓意,你从一小段代码开始,让一些工作,然后尝试为你的代码添加一个额外的功能。
使其工作,然后在代码中添加第三个功能。
并且一遍又一遍地重复,直到你对代码感到满意为止。
不要忘记在代码中添加注释,以便了解代码的作用。
否则,从今天起六个月,您可能不知道您的代码实际上做了什么。
因此,通过更好的评论,可以进一步增强此代码。
故事的寓意从小开始,然后迭代或改进你的代码。
本课程视频下载地址:Python扩展脚本网络编程教程