使用 NETCONF 删除配置元素
在运行 Junos OS 设备的 NETCONF 会话中,从候选配置或开放式配置数据库中的现有配置中删除配置元素(包括层次结构级别或配置对象)(如果客户端应用程序在执行操作之前发出 Junos XML <open-configuration>
<edit-config>
协议操作),客户端应用程序会使用 NETCONF 发出更改单个配置元素 中所述的基本标记元素。它还会发出 <default-operation>
带值的标记元素 none
,将默认模式更改为 “不更改”。
<rpc> <edit-config> <target> <candidate/> </target> <default-operation>none</default-operation> <!-- EITHER --> <config> <configuration> <!-- tag elements representing the configuration elements to delete --> </configuration> </config> <!-- OR --> <url> <!-- location specifier for file containing elements to delete --> </url> </edit-config> </rpc> ]]>]]>
在无更改模式下,现有配置 operation="delete"
元素不变,除非新配置中的相应元素在其开放标记中具有属性。此模式可防止 NETCONF 服务器为要删除的元素创建父层层次结构级别。建议删除无更改模式下执行的唯一操作。合并、替换或创建配置元素时,客户端应用程序使用合并模式。
要表示要删除的每个配置元素(在标记元素中或由标记元素指定的文件中),应用程序会发出代表其父层次结构级别的标记元素,如 使用 NETCONF 的 Change Individual Configuration Elements 中所述。<config>
<url>
包括属性的标记operation="delete"
元素取决于元素类型,如以下章节所述:
删除层次结构级别或容器对象
要删除层次结构 operation="delete"
级别及其所有子级(或包含子级但无标识符的容器对象),客户端应用程序在表示该级别的空标记中包含属性:
<configuration> <!-- opening tags for each parent level --> <level-to-delete operation="delete"/> <!-- closing tags for each parent level --> </configuration>
我们建议应用程序将<default-operation>
none
默认模式设置为不更改,方法为将标记元素与值一起添加,如 在 NETCONF 会话中设置编辑配置模式 中所述。有关层次结构级别和容器对象的信息,请参阅 将配置语句映射到Junos XML 标记元素。
以下示例显示如何删除 [edit protocols ospf]
候选配置的层次结构级别:

删除具有标识符的配置对象
要删除具有标识符的配置对象,客户端 operation="delete"
应用程序包括对象的容器标记元素中的属性。在容器标记元素内,仅包含标识符标记元素,而非表示其他特性的任何标记元素。在以下内容中,标识符标记元素称为 <name>
:
<configuration> <!-- opening tags for each parent of the object --> <object operation="delete"> <name>identifier</name> </object> <!-- closing tags for each parent of the object --> </configuration>
属性 delete
显示在开箱标记中,而不是在标识符标记元素中。标识符标记元素的存在会导致移除指定对象,而不是移除由容器标记元素表示的整个层次结构级别。
我们建议应用程序将<default-operation>
none
默认模式设置为不更改,方法为将标记元素与值一起添加,如 在 NETCONF 会话中设置编辑配置模式 中所述。有关标识符详细信息,请参阅 将配置语句映射到Junos XML 标记元素。
以下示例显示如何从 barbara
候选配置的 [edit system login user]
层次结构级别中删除用户对象:

从配置对象中删除单值或固定形式选项
要从配置 operation="delete"
对象中删除固定形式选项或仅接受一个值的选项,客户端应用程序包括选项的标记元素中的属性。在以下内容中,对象的标识符标记元素称为 <name>
。(有关删除可能获取多个值的选项的信息,请参阅 从配置对象的多值选项中删除 值 。)
<configuration> <!-- opening tags for each parent of the object --> <object> <name>identifier</name> <!-- if object has an identifier --> <option1 operation="delete"> <option2 operation="delete"> <!-- tag elements for other options to delete --> </object> <!-- closing tags for each parent of the object --> </configuration>
我们建议应用程序将<default-operation>
none
默认模式设置为不更改,方法为将标记元素与值一起添加,如 在 NETCONF 会话中设置编辑配置模式 中所述。有关选项的详细信息,请参阅 将配置语句映射到 Junos XML 标记元素。
以下示例显示如何删除 disable
层级的固定 [edit forwarding-options sampling]
形式选项:

从配置对象的多值选项中删除值
如用于标记 XML 标记元素的映射Junos中所述,某些Junos OS对象是具有多个值的叶语句。在格式化的 ASCII CLI表示中,这些值包含于对象名称下面的方括号中:
object[value1 value2 value3 ...];
Junos XML 表示不会为对象使用父级标记,而是会针对每个值使用对象标记元素的单独实例。在以下内容中,标识符标记元素称为 <name>
:
<parent-object> <name>identifier</name> <object>value1</object> <object>value2</object> <object>value3</object> </parent-object>
要移除此类对象的一个或多个值,客户端 operation="delete"
应用程序包括每个值开放标记中的属性。它不包含表示要保留的值的标记元素。下面的标识符标记元素称为 <name>
:
<configuration> <!-- opening tags for each parent of the parent object --> <parent-object> <name>identifier</name> <object operation="delete">value1</object> <object operation="delete">value2</object> </parent-object> <!-- closing tags for each parent of the parent object --> </configuration>
我们建议应用程序将<default-operation>
none
默认模式设置为不更改,方法为将标记元素与值一起添加,如 在 NETCONF 会话中设置编辑配置模式 中所述。有关具有多个值的叶语句详细信息,请参阅 将配置语句Junos XML 标记元素。
以下示例显示如何删除授予登录类的两个 user-accounts
权限:
