python环境配置实验步骤_练习Python自动化-设置网络实验环境-网络打印机怎么设置...

设置网络实验室环境

我们现在对如何编写和开发Python脚本(创建程序的构建块)有了一个很好的想法。 我们现在将继续理解为什么自动化是当今网络中的一个重要主题,然后我们将使用一种称为EVE-NG的流行软件来构建我们的网络自动化实验室,该软件可以帮助我们虚拟化网络设备。

我们将在本章中介绍以下主题:何时以及为何自动化网络

屏幕抓取与API自动化

为什么要使用Python进行网络自动化

网络自动化的未来

实验室设置

做好准备:安装EVE-NG

构建企业网络拓扑

何时以及为何自动化网络

网络自动化在整个网络世界中不断增加。 但是,了解自动化网络的时间和原因非常重要。 例如,如果您是少数网络设备(三个或四个交换机)的管理员,并且您没有定期执行这么多任务,那么您可能不需要完全自动化它们。 实际上,编写和开发脚本以及测试和排除故障所需的时间可能大于手动执行简单任务所需的时间。 另一方面,如果您负责包含多供应商平台的大型企业网络并且您始终执行重复性任务,那么强烈建议您使用脚本来自动化它。

为什么我们需要自动化?

为什么自动化对于当今的网络很重要有几个原因:降低成本:使用自动化解决方案(内部开发或从供应商处购买)将降低网络运营复杂性以及配置,配置和操作网络设备所需的时间

业务连续性:自动化将减少在当前基础架构上创建服务期间的人为错误,从而使企业能够缩短服务上市时间(TTM)

业务敏捷性:大多数网络任务都是重复的,通过自动化,您将提高生产力并推动业务创新

相关性:构建可靠的自动化工作流程使网络和系统管理员能够更快地执行根本原因分析,并通过将多个事件关联在一起来提高解决问题的可能性

屏幕抓取与API自动化

在很长一段时间内,CLI是唯一可用于管理和操作网络设备的访问方法。操作员和管理员过去常常使用SSH和Telnet访问网络终端进行配置和故障排除。 Python或任何编程语言都有两种与设备通信的方法。第一个是像以前一样使用SSH或telnet获取信息,然后处理它。此方法称为屏幕抓取,需要能够与设备建立连接并直接在终端上执行命令的库,以及其他库来处理返回的信息以从中提取有用数据。此方法通常需要了解其他解析语言(如正则表达式),以匹配输出中的数据模式并从中提取有用数据。

第二种方法称为应用程序可编程接口(API),该方法完全依赖于使用REST或SOAP协议向设备发送结构化请求,并以结构化格式返回输出,以JSON或XML编码。与第一种方法相比,在此方法中处理返回数据所需的时间非常短;但是,API需要在网络设备上进行其他配置才能支持它。

为什么使用Python进行网络自动化?

Python是一种非常结构良好且易于编程的语言,目前可用于技术,Web和Internet开发,数据挖掘和可视化,桌面GUI,分析,游戏构建和自动化测试等许多领域。 这就是为什么它被称为通用语言。

因此,选择Python有三个原因:

可读性和易用性:当您使用Python开发时,您实际上发现自己用英语写作。 Python中的许多关键字和程序流都被构造成具有可读语句。 此外,Python不要求; 或者花括号来开始和结束块,这给Python一个浅薄的学习曲线。 最后,Python有一些可选的规则,称为PEP 8,它告诉Python开发人员如何格式化他们的程序以获得可读的代码。

您可以配置PyCharm来处理这些规则,并通过转到“设置”来检查您的代码是否违反了这些规则 检查| PEP 8编码风格违规:

库:这是Python的真正强大功能:库和包。 Python在许多领域都有各种各样的库。 任何Python开发人员都可以轻松开发Python库并在线上传,以便其他开发人员可以使用它。 库被上传到名为PyPI(https://pypi.Python.org/pypi)的网站,并链接到GitHub存储库。 如果要将库下载到PC,则使用名为pip的工具连接到PyPI并在本地下载。 Cisco,Juniper和Arista等网络供应商开发了可以方便访问其平台的库。 大多数供应商都在努力使他们的库易于使用,并且需要最少的安装和配置步骤来从设备中检索有用的信息。

功能强大:Python尝试最小化达到最终结果所需的步骤数。 例如,要使用Java打印hello world,您将需要以下代码块:

但是,在Python中,整个块都用一行编写来打印它,如下面的屏幕截图所示:

将所有这些原因结合在一起,使得Python成为事实上的自动化标准,并成为供应商在自动化网络设备时的首选。

网络自动化的未来

在很长一段时间内,网络自动化只意味着使用Perl,TcL或Python等编程语言开发脚本,以便在不同的网络平台上执行任务。 这种方法称为脚本驱动的网络自动化。 但随着网络变得越来越复杂和面向服务,需要新的自动化类型并开始出现,如下所示:Software-defined network automation: 网络设备将仅具有转发平面,而控制平面使用称为SDN控制器的外部软件来实现和创建。 这种方法的好处是,任何网络变化都会有单一联系点,SDN控制器可以通过良好实施的北向接口接受来自其他软件(如外部门户)的变更请求.

High-level orchestration: 这种方法需要一个称为协调器的软件,它与SDN控制器集成,并支持使用诸如YANG之类的语言创建网络服务模型,这些语言从将在其上运行的底层设备中抽象出服务。 此外,协调器可以与OpenStack和vCenter等Virtual Infrastructure Manager(VIM)集成,以便将虚拟机作为网络服务建模的一部分进行管理.

Policy-based networking: 在这种类型的自动化中,您描述了您希望在网络中拥有的内容,并且系统具有所有详细信息,以确定如何在底层设备中实现它。 这允许软件工程师和开发人员实现网络中的更改,并在声明性策略中描述其应用程序的需求.

网络实验室设置

现在,我们将开始在一个名为EVE-NG的流行平台上构建我们的网络实验室。 当然,您可以使用物理节点来实现拓扑,但虚拟化环境为我们提供了一个隔离的沙盒环境来测试许多不同的配置,以及通过几次单击向拓扑添加/删除节点的灵活性。 此外,我们可以为配置创建多个快照,以便我们可以随时恢复到任何方案。

EVE-NG(以前称为UNetLab)是网络仿真中最受欢迎的选择之一。 它支持来自不同供应商的各种虚拟化节点。 还有另一种选择,即GNS3,但正如我们将在本章和下一章中看到的那样,EVE-NG提供了许多功能,使其成为网络建模的可靠选择。

EVE-NG有三个版本:社区,专业版和学习中心。 我们将使用社区版,因为它包含了本书中我们将需要的所有功能。

做好准备 - 安装EVE-NG

EVE-NG社区版有两种选择,OVA和ISO。 第一种选择是使用OVA,它可以为您提供所需的最低安装步骤,前提是您已经拥有VMware Player / Workstation / Fusion,VMware ESXi或Red Hat KVM。 第二种选择是在没有管理程序的情况下直接在裸机服务器上安装它,这次使用的是Ubuntu 16.06 LTS OS:

但是,ISO选项需要Linux中的一些高级技能来准备机器本身并将安装存储库导入操作系统。

Oracle VirtualBox不支持EVE-NG所需的硬件加速,因此最好将其安装在VMware或KVM中。

首先,前往http://www.eve-ng.net/index.php/downloads/eve-ng下载最新版本的EVE-NG,然后将其导入您的虚拟机管理程序。 我将8 GB内存和4个vCPU专用于创建的计算机,但您可以为其添加其他资源。 在下一节中,我们将了解如何将下载的图像导入虚拟机管理程序并配置每个虚拟机。

在VMware Workstation上安装

在以下步骤中,我们将下载的EVE-NG OVA映像导入VMware Workstation。 基于OVA的映像包含根据硬盘,CPU和RAM值描述虚拟机的文件。 稍后您可以在导入后修改这些数字:

打开VMware工作站,从“文件”中选择“打开”以导入OVA。

完成导入过程后,右键单击新创建的计算机,然后选择“编辑设置”。

将处理器数量增加到4,将内存分配到8 GB(同样,如果有资源,可以添加更多,但此设置对我们的实验室来说已足够)。

确保已启用Virtualize Intel VT-x / EPT或AMD-V / RVI复选框。 此选项指示VMware工作站将虚拟化标志传递给来宾操作系统(嵌套虚拟化):

此外,建议通过向现有硬盘添加额外空间来扩展硬盘,以便有足够的空间来托管来自供应商的多个图像:

展开磁盘后将显示一条消息,指示操作已成功完成,您需要按照客户机操作系统中的某些过程将新空间与旧空间合并。 幸运的是,我们不需要这样做,因为EVE-NG会在系统启动期间将硬盘中找到的任何新空间与旧硬盘合并:

通过VMware ESXi安装

VMware ESXi是直接在系统上运行的类型1虚拟机管理程序的一个很好的示例。 有时它们被称为裸机虚拟机管理程序,与2型虚拟机管理程序相比,它们提供了许多功能,例如VMware工作站/ Fusion或VirtualBox:

打开vSphere客户端并连接到ESXi服务器

从“文件”菜单中,选择“部署OVF模板”

输入下载的OVA映像的路径,然后单击“下一步”:

接受管理程序建议的所有默认设置,直到您登陆最终页面,Ready to Complete,然后单击Finish:

ESXi将开始在虚拟机管理程序上部署映像,稍后您可以更改其设置并为其添加更多资源,就像我们之前在VMware工作站中所做的那样。

通过Red Hat KVM安装

您需要将下载的OVA映像转换为KVM支持的QCOW2格式。 按照以下步骤将一种格式转换为另一种格式。 我们需要在qemu-utils包中提供一个名为qemu-img的特殊实用程序:解压下载的OVA以解压缩VMDK文件(图像的硬盘):tar -xvf EVE\ Community\ Edition.ova

EVE Community Edition.ovf

EVE Community Edition.vmdkInstall the qemu-utils tools:sudo apt-get install qemu-utilsNow, convert the VMDK to QCOW2. It may take a few minutes for the conversion to be complete:qemu-img convert -O qcow2 EVE\ Community\ Edition.vmdk eve-ng.qcow

最后,我们有自己的qcow2文件,可以在Red Hat KVM中托管。 打开KVM控制台,然后从菜单中选择Import existing disk image选项:

然后,选择转换后图像的路径,然后单击“前进”:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值