了解作为 Python 模块运行时的 Python 中的 Junos 快照管理员
Python 中的 Junos 快照管理器 (jsnapy) 使您能够捕获和审核运行 Junos® OS 的网络设备的运行时环境快照。Jsnapy 可以从网络服务器(jsnapy 服务器)的命令行运行,也可以从 jsnapy 服务器上的其他 Python 脚本中作为模块调用。有关 CLI 操作的详细信息,请参阅 Python 中的 Junos 快照管理员概述 。
一旦安装在网络服务器上,jsnapy就可以用作其他python脚本和程序中的模块了。无需进一步配置。Jsnapy在用作python脚本或程序中的模块时保留了其所有功能。
为了将 jsnapy 用作另一个 python 脚本中的模块,您必须首先使用 python 语句,以便 python import 脚本可以访问 jsnapy 功能。由于在使用快照时,脚本不仅依赖于 jsnapy,还依赖于对 Junos OS 设备的了解,因此您必须创建两个不同的导入语句,每个语句从可用的瞻博网络 Python 库 jnpr 导入不同的模块。
from jnpr.jsnapy import SnapAdmin from jnpr.junos import Device
导入 SnapAdmin 模块使脚本或程序可以访问命令行上可用的所有相同的 jsnapy 选项。在脚本中使用时,该SnapAdmin()函数通常分配给变量以供稍后在脚本中使用。参数被传递给 以SnapAdmin()控制可用的 jsnapy 选项。以下示例将 SnapAdmin 分配给变量js,然后使用 3 个主要选项snapcheck、、 和 snapcheck调用 jsnapy 。
将 SnapAdmin 函数分配给变量
js = SnapAdmin()
呼叫 jsnapy 3 次
snapshot = js.snap(config_file, "snapshot_filename") chk = js.check(config_file, snapshot_1, snapshot_2) snapchk = js.snapcheck(config_file, "snapshot_filename")
设备模块允许 Python 脚本在 Junos OS 设备上连接、登录和运行命令。从 python 脚本中调用设备模块时,提供连接 IP 地址、用户名和密码参数。例如,python 脚本中的以下行创建了一个变量,该变量调用 device_object 以供稍后在脚本中使用。
device_object = Device(host='192.0.2.1', user='username', password='password')
上面命名为参数值的变量可以来自各种来源。
可以通过创建用于存储数据的变量,然后指定连接到和测试该设备所需的所有主机和测试信息,将配置文件信息构建到 python 脚本中。例如,
config_data = """ hosts: - device: 192.0.2.1 username : username passwd: password tests: - test_exists.yml - test_does_not_contain.yml """可以指定包含目标设备的连接和测试信息的现有 YAML 格式配置文件。例如:
config_file = /etc/jsnapy/samples/config_single_snapcheck.yml
可以将脚本定义的设备对象用于连接目的,也可以结合使用现有 YAML 格式的测试文件列表来测试设备。例如,以下行使用前面定义的
device_object以及要运行的测试列表和快照文件的名称。js.snapcheck({'tests': ['test_exists.yml', 'test_contains.yml', 'test_is_equal.yml']}, "snapshot_name", dev=device_object)
从其他 Python 脚本或程序中运行 jsnapy 时,可以使用多种选项。熟悉 Python 脚本和 Junos OS 设备交互有助于了解可能实现的功能。