Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Salt 检索 Junos OS 配置

瞻博网络支持使用 Salt 管理运行 Junos OS 的设备,而 Junos 执行和状态模块(用于 Salt)可定义一些函数,使您能够从受管设备检索配置。可以使用 salt.modules.junos.rpc 执行函数或 salt.states.junos.rpc 状态函数执行 get_config RPC,以从运行 Junos OS 的设备检索配置数据。

您可以使用 get_config RPC 从候选配置数据库、提交配置数据库或临时配置数据库中检索完整配置或配置的子集。您可以返回继承前或继承后配置的数据。此外,还可以以多种不同的格式返回数据,并将数据保存到代理工作节点服务器上的文件中。

如何检索完整的候选配置

若要从运行 Junos OS 的设备检索完整的候选配置,请调用该 junos.rpc 函数并执行 get_config RPC。

同样,您可以定义一个用于检索配置的 Salt 状态文件。以下示例状态文件以文本格式检索目标设备的完整候选配置:

应用该状态时,它将显示每个目标设备的候选配置。

如何为配置数据指定源数据库

默认情况下, get_config RPC 从候选配置数据库中检索配置数据。您还可以通过将参数与适当的值包含在 database 内,从已提交的配置数据库或临时配置数据库中检索数据。

已提交的配置数据库

要从提交的配置数据库中检索数据,请将 database 参数设置为等于 committed。例如:

临时配置数据库

您还可以使用 Salt 从支持此数据库的设备上的临时配置数据库中检索数据。从共享配置数据库检索配置数据时,默认情况下,结果不包括临时配置数据库中的数据。

要从临时配置数据库的默认实例中检索数据,请包含该 database 参数并将其设置为等于 ephemeral

要从临时配置数据库的用户定义实例中检索数据,请将 database 参数设置为等于 ephemeral,并将参数设置为 ephemeral-instance 临时实例的名称。

如何指定要返回的配置数据的作用域

除了检索完整的 Junos OS 配置外, get_config RPC 还可以使用参数 filter 检索配置的子集。该 filter 参数采用一个字符串,其中包含子树过滤器,用于选择要返回的配置语句。子树筛选器返回与选择条件匹配的配置数据。

若要请求多个层次结构, filter 字符串必须包含 <configuration> 根元素。否则,的 filter 值必须表示从根 <configuration> 元素下开始一直到要显示的层次结构的所有级别。要选择子树,请包含该层次结构级别的空标记。若要返回特定对象,请包含一个内容匹配节点,该节点定义要匹配的元素和值。

以下命令检索并打印候选配置中的 [edit interfaces][edit protocols] 层次结构级别的配置:

以下命令在 [edit system services] 层次结构级别检索并打印配置:

以下状态文件检索<name>继承后候选配置中层次<interfaces>结构级别每个<interface>元素的元素:

应用状态将返回接口名称列表。

同样,以下示例检索 ge-1/0/1 接口的子树:

如何指定要返回的配置数据的格式

默认情况下,该 junos.rpc 函数为标准输出中显示的数据以及保存到目标文件的数据(如果指定)返回 XML 格式的 RPC 输出。若要指定输出格式,请包含 format 参数,并将值设置为等于所需格式。要请求文本格式或 Junos XML 元素,请分别使用 textxml。要将配置数据以 JSON 格式保存到目标文件中,请指定 json

以下命令会将配置数据保存到指定的文件中,并以文本格式在标准输出中显示该数据:

以下命令会将配置数据以 JSON 格式保存到指定的文件中:

如何指定继承和组选项

get_config RPC 从继承前配置中检索数据,其中<groups><apply-groups><apply-groups-except><interface-range>标记是配置输出中的独立元素。要从继承后配置中检索数据,该配置将从用户定义的组和范围继承的语句显示为继承语句的子级,可以包含该inherit=inherit参数。如果还包含参数,groups=groups则文本和 XML 格式的输出将指示从其继承语句的组。

例如,以下命令从继承后候选配置中检索层次结构级别的配置 [edit system services] 。在这种情况下,如果配置还包含在层次结构级别上配置 [edit groups global system services] 的语句,则这些语句将在继承后配置中在 [edit system services] 层次结构级别继承,并在配置数据中返回。

在目标文件中,从组继承的元素包括该 group 属性。 group 属性值指示从其继承元素的组。

如何将检索到的配置数据保存到文件

执行 junos.rpc 该函数时,可以通过包含 dest 参数并指定目标文件的路径,将返回的数据保存在代理工作节点服务器上的文件中。如果未指定绝对路径,则该路径相对于顶级根 (/) 目录。如果目标输出文件已存在,则新文件将覆盖旧文件。

要从运行 Junos OS 的设备检索配置数据并将输出保存到文件中供以后参考,请执行 get_config RPC 并包含该 dest 参数。以下命令将检索完整配置,在标准输出中显示数据,并将数据保存在代理工作节点服务器上的指定文件中:

在代理工作节点服务器上,配置数据将保存到指定的文件中。

同样,您可以定义一个 Salt 状态,用于检索配置数据并将其保存在文件中。以下示例状态文件检索完整配置,并将数据写入标准输出和代理工作节点服务器上的指定文件:

在这种情况下,存储在颗粒中的 id 代理标识符包含在目标文件名中,以便在将状态应用于多个目标时区分输出文件。当您将状态应用于与颗粒匹配 os_family:junos 的设备时,它会将每个设备的配置保存到代理工作节点服务器上各自的文件中。

每个设备配置都保存在代理工作节点服务器上的单独文件中。