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 状态函数执行 RPC, get_config 以便从运行 Junos OS 的设备检索配置数据。

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

如何检索完整的候选配置

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

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

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

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

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

提交的配置数据库

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

临时配置数据库

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

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

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

如何指定要返回的配置数据的范围

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

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

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

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

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

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

同样,以下示例检索 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 的设备时,它会将每个设备的配置保存到代理工作节点服务器上自己的文件中。

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