Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 Python 配置文件中的 Junos 快照管理员

Python 中的 Junos 快照管理员 (jsnapy) 配置文件定义快照的范围,并指定包含单个快照或两个快照比较的测试标准的文件名。您可以提供 jsnapy 配置文件的位置作为命令的 jsnapy 参数,或者在从另一个 Python 脚本调用 jsnapy 时作为参数提供。

配置文件的存储位置

jsnapy 配置文件可以存储在 jsnapy 服务器文件系统上的任何位置。如果从中调用的当前工作目录中 jsnapy 不存在配置文件,jsnapy 将查找标题 /etc/jsnapy/jsnapy.cfgconfig_file_path 指定的路径。如果该文件不存在,jsnapy 将在默认位置 (/etc/jsnapy/) 中查找配置文件。如果该文件也不存在,则会显示错误。要使用特定配置文件,可以在调用 jsnapy时在命令行上指定配置文件的完整路径。例如:

了解配置文件的各个部分

Jsnapy 配置文件由两个必需部分组成:主机和测试,以及两个可选部分:sqlilte 和 mail。

  • hosts 部分定义 jsnapy 在使用配置文件时连接到哪些 Junos OS 主机或设备。Jsnapy 可以连接到单个主机或多个主机。指示 jsnapy 连接到单个主机的配置文件在配置文件中定义主机 IP 地址和登录凭据。

    指示 jsnapy 连接到多个主机的配置文件使用 YAML 文件的包含功能从单独的 YAML 设备文件中读取主机和凭据的列表。设备文件可以是列出了许多主机的大文件。若要使用较少的主机,可以将设备文件分解为使用配置文件的 hosts 部分中的关键字引用 group: 的组。有关详细信息,请参阅了解 Python 设备文件中的 Junos 快照管理员。要指定哪个文件包含设备列表,请输入文件名或文件的完整路径。当仅提供文件名时,文件的位置遵循存储 配置文件的位置中所述的规则。

  • 测试部分告诉jsnapy在使用配置文件时使用哪些测试文件。要对主机执行的测试始终在单独的测试文件中定义,这些文件的名称在配置文件的测试部分中指定。可以输入多个测试文件名,每个文件名都在各自的行上。测试文件名可以作为文件名或文件的完整路径提供。当仅提供文件名时,文件的位置遵循存储配置文件的位置中所述的规则。有关详细信息,请参阅了解 Python 测试文件中的 Junos 快照管理员和示例:在 Python 测试文件中创建 Junos 快照管理员

  • sqlite 部分定义了用于在 SQLite 数据库中存储和比较快照的参数。您可以指定使用此配置文件创建的快照除了存储在 jsnapy 服务器的文件系统中之外,是否还应存储在特定的 SQLite 数据库中。您还可以指定是否 --check--snapcheck 选项对存储在 SQLite 数据库中的快照执行比较操作。SQLite 数据库最多可以存储 51 个快照,这些快照按 ID 号 0 到 50 编制索引。 表 2 介绍了在 SQLite 数据库中配置快照存储所需的配置元素。

  • 邮件部分包括包含电子邮件配置信息的文件的名称。邮件文件可以作为文件名或文件的完整路径提供。当仅提供文件名时,文件的位置遵循存储 配置文件的位置中所述的规则。了解 Python 邮件文件中的 Junos 快照管理员中介绍了邮件文件中包含的内容的详细信息。

配置文件的元素

jsnapy 配置文件是使用与网络相关的关键字和值的组合构建的 YAML 文件。与任何 YAML 文件一样,结构是通过缩进(一个或多个空格)派生的,序列项用短划线 (-) 表示,键值对用冒号 (:) 分隔。 表 1 显示了支持的关键字及其含义。

表 1:配置文件关键字和说明

关键 字

描述

主机

此关键字表示主机部分的开头。它必须单独在一行上,并且后面必须跟一个冒号。(hosts:

此关键字是主机部分的可选部分。它引用外部设备文件中的设备组名称(联系多个主机时)。它必须单独在一行上,并且后面必须跟一个冒号。(group:) 此处使用的组名必须与外部设备文件中的组名区分大小写匹配。要在设备文件中包括所有主机,请使用值 all 代替任何组名称。

装置

此关键字是主机部分的一部分。它前面是一个破折号,后面紧跟一个冒号 (- devices:)。可以通过指定单个主机的 IP 地址来联系单个主机。通过指定包含多个设备 IP 地址列表的单独设备文件(也采用 YAML 格式),可以联系多个主机。

包括

此可选关键字是主机部分的一部分。它前面是一个破折号,后面紧跟一个冒号。它指定包含多个设备 IP 地址和登录凭据的文件的名称。仅当您将 jsnapy 连接到多个主机时才需要它。

用户

此关键字是主机部分的一部分。紧随其后的是冒号。它指定在联系配置或设备文件中正上方列出的设备时使用的用户名。

密码

此关键字是主机部分的一部分。紧随其后的是冒号。它指定在配置或设备文件中联系其正上方列出的设备时使用的登录密码。

测试

此关键字表示测试部分的开头。紧随其后的是冒号。它用于列出一个或多个用于创建或比较快照的测试文件。

Sqlite

此关键字表示 sqlite 部分的开头。紧随其后的是冒号。sqlite 部分用于定义用于在 sqlite 数据库中存储快照或比较来自 sqlite 数据库的快照的参数。要完成本节,必须填写 表 2 中所示的参数。

邮件

此关键字激活电子邮件功能。后面跟一个冒号。参数是包含电子邮件配置信息的文件的名称;例如, mail: mail.yml.激活后,将发送有关 --check 结果和 --snapcheck 操作的电子邮件,但在使用该 --snap 选项时不会发送。

表 2 显示了用于填写配置文件 sqlite 部分的可用参数。

表 2:SQLite 配置参数

参数

描述

- store_in_sqlite:

使用该--snap选项时是必需的。可选择或--check--snapcheck选项。设置为true激活。

database_name

无论选项如何,都是必需的。指定要在其中存储或读取快照的 sqlite 数据库的名称。

check_from_sqlite

必需的 --check--snapcheck 选项。可选 --snap 选项。设置为 true 激活。

比较:

如果要使用或--snapcheck选项按--check快照 ID 号 (0-50) 比较两个快照,则为必需。如果使用命令行按快照名称进行比较,则忽略;例如,jsnapy --check PRE POST -f config.yml.

在配置文件中插入注释

注释可以通过以井号 (#) 开头的任何位置插入到文件中。这对于需要管理多个配置文件的用户非常有用,以便他们可以快速了解文件中包含的内容。