ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

90DaysOfDevOps 网络自动化实战(Day 25):Python 驱动网络自动化与 EVE-NG 仿真实验室搭建

90DaysOfDevOps 网络自动化实战(Day 25):Python 驱动网络自动化与 EVE-NG 仿真实验室搭建 文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载导读本篇文章来自 90DaysOfDevOps 项目 2022 年度课程的第 25 天核心主题是Python 网络自动化。文章首先梳理了 Python 之所以成为网络运维自动化事实标准的三大理由可读性、生态库、高效随后引出软件定义网络SDN、高层编排与基于策略的管理这三类新型网络自动化范式紧接着进入实战环节完整演示了如何在 VMware Workstation 中导入 EVE-NGCommunity Edition并完成首轮初始化配置从而获得一个可反复折腾、可跑通 Python 脚本的虚拟网络实验沙箱。学完本篇你将能够理解 Python 在网络自动化中的定位独立搭建并初始化 EVE-NG 虚拟网络实验环境并为后续使用 Netmiko、Paramiko 等库编写设备配置脚本打下基础。注本仓库中与该主题配套的后续脚本Paramiko、Netmiko 连接与备份脚本位于 2022/Days/Networking 目录可在搭建完成实验室后继续深入练习。为什么网络自动化离不开 Python原文开宗明义地指出Python 是自动化网络运维的标准语言。这并非因为 Python 只能做网络自动化而是当你搜索各类网络自动化资料时Python 几乎无处不在——即使不是 Python 本身往往也是由 Python 编写的工具例如 Ansible 就是用 Python 实现的。文中还交代了作者个人背景在“学习一门编程语言”阶段作者因为所在公司使用 Go 开发而选择了 Golang但若无此特殊原因Python 会是当时学习语言的默认选项。这从侧面说明Python 的通用性与易用性使它成为绝大多数 DevOps/网络工程师进入自动化领域的首选。可读性与易用性Python 的语法天然“读得懂”——不需要使用{}来标记代码块起始与结束缩进即结构。配合 VS Code 这样的强 IDE几乎零成本即可开始运行第一个脚本。除 VS Code 外PyCharm 也是值得考虑的 IDE 选择。库生态真正的金矿Python 的扩展性是其核心价值所在PyPIPython 包索引上存在海量针对各类设备与配置场景的库。获取方式很简单——使用pip工具连接 PyPI 并下载安装到本地工作站即可。值得注意的是Cisco、Juniper、Arista 等网络厂商都开发了官方库以方便用户访问各自的设备。这是 Python 在网络自动化领域生态优势的直接证据。强大且高效对比此前 Go 语言章节的 Hello World 需要约 6 行代码Python 只需一行print(hello world)综合以上三点可以很容易理解为什么 Python 通常被视为自动化工作的“事实标准de-facto工具”。从“脚本备份”到“意图化网络”网络自动化的范式演进文中强调了一个重要观点早年间也可能存在脚本与网络设备交互例如自动备份配置、抓取日志与设备信息。但今天我们讨论的自动化有所不同——网络整体格局已经为自动化思维发生了改变。这种演进体现在三个层次软件定义网络SDNSDN 控制器承担起向全网所有设备下发控制平面配置的职责。这意味着任何网络变更只需面对单一接触点不再需要逐台 telnet/SSH 登录设备也不再依赖容易重复出错、配置不一致的人工操作。高层编排High-Level Orchestration在 SDN 控制器之上再提升一个抽象层级实现服务级别的编排并将这个编排层集成到你所选择的平台中例如 VMware、Kubernetes、公有云等。基于策略的管理Policy-based management你只需要描述“想要什么”——即期望状态Desired State系统会自行掌握所有细节并推导出如何达到该期望状态。这正是声明式管理理念在网络领域的体现。搭建实验环境为什么选择 EVE-NG并非每个人都有真实的路由器、交换机等物理网络设备。为了让学习者既能体验上述工具又能动手学习如何自动化配置网络原文选择构建一个虚拟实验环境。可选方案包括GNS3 VM流行的图形化网络模拟器EVE-NG本文选择Emulated Virtual Environment Next Generation社区版免费可用Unimus严格说不是实验环境而是一个“有意思的概念”配置备份与变更管理工具。最终选用 EVE-NG 的理由很务实虚拟环境意味着我们拥有一个沙箱可以测试许多不同场景并且能够自由摆弄不同设备与拓扑。全流程将基于 EVE-NG 社区版Community Edition完成。获取镜像ISO 与 OVF 两种格式EVE-NG 社区版提供ISO 与 OVF两种格式下载OVF 格式可直接导入虚拟机管理程序hypervisor本文采用此方式ISO 格式可在裸金属服务器上直接安装无需 hypervisor。虚拟化平台选择VMware Workstation原文使用VMware Workstation PRO作者通过 vExpert 计划获得许可进行演示你也可以使用免费的 VMware Workstation Player或参考官方文档中列出的其他平台。文中特别提醒此前的课程中使用的 VirtualBox 在这里不可用——作者在 GNS3 与 VirtualBox 的组合中也遇到过相同问题。因此请优先选择 VMware 系列的 Workstation/Player。VMware Workstation 中导入 EVE-NG逐步实操第一步解压并导入 OVF打开 VMware Workstation选择菜单File - Open下载得到的 EVE-NG OVF 镜像位于一个压缩文件内先解压到独立文件夹得到完整的 OVF 配套文件组导航到解压位置开始导入Import为虚拟机起一个易于识别的名称并将虚拟机存储到系统上合适的位置。第二步调整虚拟硬件与开启嵌套虚拟化导入完成后建议将处理器数量调整为 4 核、内存分配调整为 8 GB最新版本导入后可能已是默认值若不是请在虚拟机设置中修改。关键一步确保勾选“Virtualize Intel VT-x/EPT or AMD-V/RVI”选项。该选项指示 VMware Workstation 将虚拟化标志透传给客户机操作系统即嵌套虚拟化。这正是作者之前在 GNS3 VirtualBox 组合中遇到问题的根源——尽管 CPU 本身支持该特性。第三步开机初始化开机后你会看到一个初始化命令行界面此时可使用用户名root密码eve随后系统会要求再次设置 root 密码——这个密码将用于之后 SSH 登录宿主机。接下来按向导依次完成修改主机名hostname定义 DNS 域名作者使用了一个示例域名后续如有需要可再调整配置网络选择静态Static模式以保证重启后 IP 地址不丢失提供静态 IP 地址务必选择一个可从你的工作站访问的网段并补充子网掩码、默认网关与 DNS。配置完成后系统会自动重启。重启完成后将静态 IP 地址输入浏览器即可访问 EVE-NG 的 Web 界面示例截图中地址栏为192.168.169.210/#/login版本为 2.0.3-112。第四步Web 界面登录与控制台选择Web GUI 默认用户名admin密码eveSSH 默认用户名root密码eve若你在初始化时修改过则会以新密码为准。在登录后的设置中作者选择了HTML5控制台而非 Native这样在不同设备控制台之间切换时会在浏览器中打开新标签页操作体验更流畅。相关界面截图可参考仓库中的 Day25_Networking1.pngEVE-NG 下载页与 Day25_Networking11.pngEVE-NG Web 登录界面。排障专题WSL2 与嵌套虚拟化冲突常见坑这是原文记录的典型“兔子洞”问题作者提到该环境在 VirtualBox 下无法运行而在 VMware Workstation 下最初也遇到了同样问题——但问题并不出在虚拟化平台本身。作者在 Windows 机器上运行着WSL2而 WSL2 似乎会移除在环境中再运行嵌套虚拟化的能力作者推测它占用了 CPU 的 Intel VT-d 虚拟化方面。诡异的是Ubuntu 虚拟机却仍然能正常运行。解决方案是在 Windows 上以管理员身份执行以下命令并重启系统bcdedit /set hypervisorlaunchtype off注意关闭 hypervisor 启动类型期间WSL2 将无法使用。当你需要恢复 WSL2 时再以管理员身份执行以下命令并重启bcdedit /set hypervisorlaunchtype auto实验室搭建完成之后接下来做什么原文在完成 EVE-NG 初始化后列出了后续课程的核心任务清单这也是读者接下来的练习路线安装 EVE-NG client pack向 EVE-NG 导入网络镜像Images构建网络拓扑Network Topology添加节点Adding Nodes连接节点Connecting Nodes开始编写 Python 脚本学习telnetlib、Netmiko、Paramiko与Pexpect四类网络自动化工具。仓库配套脚本速览本仓库的 2022/Days/Networking 目录已包含上述路线的配套示例可作为实验室搭建完成后的进阶练习材料以下脚本中的 IP 对应拓扑中的 R1/SW1SW4 节点Paramiko 交互式会话paramiko_show.py 使用paramiko.SSHClient建立 SSH 连接通过invoke_shell()进入交互式 shell依次发送enable、terminal length 0、show ip int b、show arp等命令并接收输出——这正是“登录每台设备执行命令”的传统自动化方式。Netmiko 多设备并发查询netmiko_con_multi.py 定义了 R1 与 SW1SW4 共 5 台 Cisco IOS 设备的连接字典device_type、host、username、password循环调用ConnectHandler(**device)并执行show ip int brief。Netmiko 在 Paramiko 之上封装了各厂商差异使“批量查询”简洁得多。Netmiko 批量 VLAN 配置下发netmiko_sendchange.py 通过net_connect.enable()进入特权模式再用send_config_set(core_sw_config)将switchport trunk等配置列表一次性下发——这正是“配置自动化”而非“查询自动化”的体现。Netmiko 多设备状态检查netmiko_con_multi_vlan.py 批量对 SW1SW4 执行show int trunk。Paramiko 全量配置备份backup.py 读取 backup.txt 中的设备 IP 清单逐台 SSH 登录并执行show run将输出按时间戳命名保存到本地文件——即文中提到的“自动备份配置”类脚本的完整实现。这些脚本与 Day 25 正文正好构成“环境就绪 → 动手编码”的完整闭环EVE-NG 提供沙箱拓扑Python 脚本提供自动化能力。学习资源原文列出的资源均为公开的免费教程覆盖 EVE-NG 入门、网络自动化技能与计算机网络基础可作为进一步学习的材料均为外部视频/网站此处仅转述名称供检索EVE-NG 入门免费课程、EVE-NG 创建第一个实验、网络自动化必备的 3 项技能、计算机网络全课程、Practical Networking 站点、Python Network Automation 视频。下一篇内容见 Day 26将进入 EVE-NG client pack 安装与镜像加载环节。赞分享文档/教程【免费下载链接】90DaysOfDevOpsThis repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Principles, Processes, Tooling and Use Cases surrounding this vast topic.项目地址https://gitcode.com/gh_mirrors/90/90DaysOfDevOps点击查看免费下载相关推荐90DaysOfDevOps 网络自动化入门Python 与 EVE-NG 仿真实验室搭建实战Day 2590DaysOfDevOps 网络自动化入门Python 与 EVE NG 仿真实验室搭建实战Day 25 导读 网络设备配置自动化是现代 DevOps文档/教程90DaysOfDevOps用 Python 与 EVE-NG 搭建网络自动化实验环境Day 2590DaysOfDevOps用 Python 与 EVE NG 搭建网络自动化实验环境Day 25 导读 本文对应 90DaysOfDevOps 第 25文档/教程90DaysOfDevOps Day 25用 Python 与 EVE-NG 搭建网络自动化实验环境90DaysOfDevOps Day 25用 Python 与 EVE NG 搭建网络自动化实验环境 本篇指南以 90DaysOfDevOps 第 25 天文档/教程上一篇终极免费Photoshop AI插件指南3分钟完成SD-PPP安装与使用下一篇SD-PPP终极Photoshop AI插件三步让Stable Diffusion触手可及创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表