了解 Junos PyEZ
使用 Junos PyEZ Python 库开发用于远程管理 Junos 设备的 Python 脚本。
Junos PyEZ 概述
Junos PyEZ 是一个适用于 Python 的微框架,您可以使用它来管理和自动化 Junos 设备。Junos PyEZ 旨在为自动化任务构建的环境中提供用户在 Junos OS CLI 上所具备的功能。Junos PyEZ 不需要广泛的 Junos OS 或 Junos XML API 知识。
借助 Junos PyEZ,您可以使用熟悉的 Python 来管理 Junos 设备。但是,您不必是经验丰富的程序员即可使用 Junos PyEZ。非程序员可以在 Python 交互模式下快速执行简单的命令,更有经验的程序员可以选择创建更复杂、健壮且可重用的程序来执行任务。
Junos PyEZ 允许您使用串行控制台连接、telnet 或通过 SSH 的 NETCONF 会话直接连接到设备。此外,Junos PyEZ 还支持通过 telnet 或 SSH 连接到连接到设备 CONSOLE 端口的控制台服务器。当您直接连接到设备时使用串行控制台连接,或者通过直接连接到设备的控制台服务器使用 telnet 或 SSH,可以使用 Junos PyEZ 初始配置尚未配置为远程访问的新设备或归零设备。
Junos PyEZ 提供了设备、软件和文件系统实用程序,使您能够在 Junos 设备上执行常见的作任务。您可以使用 Junos PyEZ 执行以下作:
从设备检索事实或作信息
执行可通过 Junos XML API 提供的远程过程调用 (RPC)
安装或升级 Junos OS 软件
重新启动或关闭设备
执行常见的管理任务,如复制文件和计算校验和
Junos PyEZ 还允许您管理 Junos 设备配置。Junos PyEZ 配置管理实用程序使您能够:
检索配置数据
比较配置
上传并提交配置更改
回滚配置
管理救援配置
Junos PyEZ 支持标准格式的配置数据,包括 ASCII 文本、Junos XML 元素、Junos OS set 命令和 JavaScript 对象标记 (JSON)。您还可以使用 Jinja2 模板和模板文件来增加灵活性和自定义性。此外,可以使用表和视图来定义结构化资源,可用于以编程方式配置设备。
通过 Junos PyEZ 表和视图,您既可以配置 Junos 设备,也可以从设备中提取特定的作信息或配置数据。您可以使用包含键值对映射的简单 YAML 文件来定义表和视图,因此无需复杂的编码即可使用它们。您可以使用表和视图来检索设备配置或任何 Junos 命令或 RPC 的输出,然后提取自定义的信息子集。当您需要从嵌入在大量命令输出中的几个特定字段(例如 for 或show routeshow interfaces命令)检索信息时,这非常有用。此外,您可以使用表和视图来定义结构化配置资源。Junos PyEZ 可动态为资源创建配置类,以便以编程方式在设备上配置资源。
Junos PyEZ 的优势
提供抽象层,使 Python 程序员和非程序员都能轻松管理和自动化 Junos 设备。
使操作员能够自动执行常见任务,从而减少设备手册配置和管理,从而提高运维效率。
通过对目标资源进行结构化配置更改,最大限度减少错误和风险。
在自动化脚本中使用 Junos PyEZ
Junos OS 和 Junos OS 演化版在受支持设备的软件映像中包括 Python 扩展包和 Junos PyEZ 库。借助这些扩展,您可以创建本机 Python 脚本,使用 Junos PyEZ 在设备上执行 RPC 并执行作和配置任务。提交、事件、作和 SNMP 脚本支持 Junos PyEZ;瞻博网络扩展工具包 (JET) 脚本;以及 YANG 动作和翻译脚本。
表 1 总结了运行给定Junos OS版本的受支持设备上可用的Junos PyEZ 版本。例如,从 Junos OS 17.4R1 版开始,本机 Python 脚本可以利用 Junos PyEZ 2.1.4 版及更早版本中的功能。
Junos OS 版本 |
Junos PyEZ 版本 |
|---|---|
16.1R3 到 17.3 |
1.3.1 |
17.4R1 到 19.3 |
2.1.4 |
19.4R1 及更高版本 |
2.2.0 |
有关创建本机 Python 自动化脚本的更多信息,请参阅《Junos OS 自动化脚本用户指南》中的了解运行 Junos OS 设备的 自动化脚本。
Junos PyEZ 资源
瞻博网络提供了多种 Junos PyEZ 资源,如 表 2 所述。
资源 |
描述 |
URL |
|---|---|---|
API 参考 |
Junos PyEZ 模块的详细文档。 |
|
Day One: Junos PyEZ Cookbook and script repository |
Junos PyEZ 网络自动化指南,包含设置指南、启动沙盒和 GitHub 上提供的自动化脚本完整展示。 |
https://www.juniper.net/documentation/en_US/day-one-books/DO_PyEZ_Cookbook.pdf https://github.com/Juniper/junosautomation/tree/master/pyez/PyEZ_Cookbook_2017 |
文档 |
Junos PyEZ 文档,其中包含有关安装 Junos PyEZ 以及使用 Junos PyEZ 在 Junos 设备上执行作和配置任务的详细信息。 |
https://www.juniper.net/documentation/product/us/en/junos-pyez |
GitHub 存储库 |
Junos PyEZ 项目的公共存储库。该存储库包括所有版本的最新源代码、安装说明和发行说明摘要。 |
|
Google 网上论坛论坛 |
解决问题并为 Junos PyEZ 提供一般支持的论坛。 |
|
示例脚本 |
Junos PyEZ 示例脚本来帮助您入门。 |
|
Stack Overflow 论坛 |
解决问题并为 Junos PyEZ 提供一般支持的论坛。 |