You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过pyEZ获取Junos默认组中的默认应用配置?

嗨Prabir,我正好碰到过类似的问题,来给你说说怎么解决!

你遇到的问题是因为get_config()默认不会返回Junos的系统默认配置组(junos-defaults),这是Junos RPC的默认行为——它只返回你手动配置的部分,不会包含系统自带的默认配置。但我们可以通过几个方法让pyEZ获取到这些默认应用的信息:

方法1:获取包含默认组的完整配置

调用get_config()时加上options={'inherit': 'inherit'}参数,这个参数会让Junos返回包含继承配置(包括junos-defaults)的完整配置:

from jnpr.junos import Device
from lxml import etree

dev = Device(host='xxxx', user='demo', password='demo123', gather_facts=False)
dev.open()
# 启用inherit选项以包含默认配置组
cnf = dev.rpc.get_config(options={'inherit': 'inherit'})
# 格式化输出XML,方便阅读
print(etree.tostring(cnf, pretty_print=True).decode())
dev.close()

方法2:精准过滤只获取默认组的应用配置

如果不需要完整配置,只想拿到junos-defaults下的applications部分,可以用XML过滤来缩小范围,这样更高效:

from jnpr.junos import Device
from lxml import etree

dev = Device(host='xxxx', user='demo', password='demo123', gather_facts=False)
dev.open()
# 定义过滤XML,只获取junos-defaults组下的applications
filter_xml = """
<groups>
  <name>junos-defaults</name>
  <applications/>
</groups>
"""
cnf = dev.rpc.get_config(filter_xml=filter_xml)
print(etree.tostring(cnf, pretty_print=True).decode())
dev.close()

方法3:直接执行CLI命令获取Set格式输出

如果你更习惯手动执行的set格式输出,也可以用pyEZ的cli()方法直接运行对应的命令:

from jnpr.junos import Device

dev = Device(host='xxxx', user='demo', password='demo123', gather_facts=False)
dev.open()
# 执行你手动用的CLI命令,输出和设备上看到的一致
output = dev.cli('show configuration groups junos-defaults applications | display set')
print(output)
dev.close()

这三种方法都能帮你拿到junos-defaults里的默认应用信息,你可以根据自己的需求选最合适的一种~

内容的提问来源于stack exchange,提问作者Prabir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:02:20