CLI 配置示例
默认配置是在服务器启动或数据迁移期间添加的。这些默认配置仅在初始服务器启动和数据迁移期间添加。用户可以在默认 Xpath 和 Regex 上执行所有常规操作,包括删除操作。
在迁移过程中添加默认配置具有以下条件:
13.1 到 13.3:
如果同名实体不在 13.1 中,则添加默认配置。
如果同名实体在 13.1 中存在,则默认配置已过书面。
13.3 到更高版本:
如果默认配置在 13.3 中由用户修改或删除,则默认配置不会被添加或覆盖。
示例 1:设置物理接口的说明
Context: /设备/接口-信息/物理接口 此配置以物理接口为目标。
Configlet
interfaces { $INTERFACE{ description "$DESC"; } }
Parameters
参数 |
细节 |
---|---|
$INTERFACE |
这是一个默认变量,值将是配置器从中调用的接口的名称。如果从 CLI 调用配置器配置工作区,因为执行与特定接口无关,则此功能将无效。 |
$DESC |
获取说明字符串的文本字段。该值在执行时已得到。 |
在应用 CLI 配置时,用户需要输入参数。例如,用户需要为$DESC输入价值。
考虑将我们的示例应用于接口 ge-0/1/3,并将以下值作为输入给出。
参数 |
价值 |
---|---|
$DESC |
测试 DESC |
生成的配置字符串为
interfaces { ge-0/1/3{ description "TEST DESC"; } }
示例 2:设置逻辑接口的 vlan,其中从预定义的值集中选择 vlan ID
Context:/设备/配置/接口/接口/单元 此 CLI Configlet 是逻辑接口的目标
CLI Configlet
interfaces { $INTERFACE { vlan-tagging; unit $UNIT{ vlan-id $VLANID.get(0); } } }
##Since VLAN id will be given as a selection field, the value would be a collection and to get the first selected value, use .get(0)
参数 |
细节 |
---|---|
$INTERFACE |
这是默认变量,值将是 CLI Configlet 从中调用的接口的名称。如果 CLI 配置从 CLI 调用 CLI 配置工作区,因为执行与特定接口无关,则此功能将无效。 |
$UNIT |
这是默认变量,值将是从中调用 CLI Configlet 的逻辑接口的单元名称。如果 CLI 配置从 CLI 调用 CLI 配置工作区,因为执行与特定逻辑接口无关,则此功能将无效。 |
$VLANID |
这是一个选择字段,在执行时会选择该值。 Type: 选择字段 Selection Values: 0,1,2,3 Default Value: 3 |
在应用 CLI 配置时,用户需要输入参数。例如,用户需要为$VLANID输入价值。
考虑将我们的示例应用于接口 ge-0/1/3.3,并将以下值作为输入提供。
由于$VLANID定义为选择字段,因此用户必须选择一个值表单。选项列表由选择值 Xpath 或选择值字段中指定。列表中的默认选择为默认值字段中定义的 3。
参数 |
价值 |
---|---|
$VLANID |
2 |
生成的配置字符串为
interfaces { ge-0/1/3 { vlan-tagging; unit 3{ vlan-id 2; } } }
示例 3:在设备的所有接口上设置说明
Context: NULL 或/设备。以设备为目标,设备的上下文可以是空的,也可以是/设备
CLI Configlet
interfaces { #foreach($INTERFACENAME in $INTERFACENAMES) $INTERFACENAME { description "$DESC"; } #end }
参数 |
细节 |
---|---|
$INTERFACENAMES |
配置为获取所有接口名称的 XPath 的不可见变量。 Configured values XPath: /device/interface-information/physical-interface/name/text() |
$DESC |
获取说明字符串的文本字段。该值在执行时已得到。 |
执行 CLI 配置时,会提供以下输入
参数 |
价值 |
---|---|
$DESC |
测试 DESC |
生成的配置字符串为(当设备具有三个物理接口时,ge-0/0/0、ge-0/0/1 和 ge-0/0/2)。
interfaces { ge-0/0/0 { description "TEST DESC"; } ge-0/0/1 { description "TEST DESC"; } ge-0/0/2 { description "TEST DESC"; } }
示例 4:在属于设备的所有 PIC 中设置配置,仅在 FPC 0 的第一个 PIC 上设置某些配置
Context: NULL 或/设备。以设备为目标,设备的上下文可以是空的,也可以是/设备
##$ELEMENTS:/设备/机箱-库存/机箱/机箱-模块[开始-with(名称,“FPC”)]
/名称/文本() |/设备/机箱-库存/机箱/机箱-模块
[开始与(名称,“FPC”)]/机箱-子模块[开始与(名称,“PIC”)]/名称/文本()
##this将包含所有 FPC 和 PIC 的深度优先遍历顺序列表。
##Hierarchy 阵列是用于存储 FPC-PIC 层次结构的 2 维阵列,每行都包含属于单个 FPC 的 PIC。第一个元素是 FPC。
CLI Configlet
#set( $HIERARCHY = [] ) #set( $LOCALARRAY = []) #foreach ( $ELEMENT in $ELEMENTS ) #if($ELEMENT.startsWith("FPC")) ## Create a new array for each FPC with the first element as FPC #set( $LOCALARRAY = [$ELEMENT]) #set( $result = $HIERARCHY.add($LOCALARRAY)) #elseif($ELEMENT.startsWith("PIC")) ## Add the PIC in the current Local array., This is the array of the parent FPC #set( $result = $LOCALARRAY.add($ELEMENT)) #end #end chassis { redundancy { failover on-disk-failure; graceful-switchover; } aggregated-devices { ethernet { device-count 16; } } #foreach ($HIERARCHYELEMENT in $HIERARCHY ) $HIERARCHYELEMENT.get(0) { #set($HIERARCHYELEMENTSIZE = $HIERARCHYELEMENT.size() - 1) #foreach ($HIERARCHYELEMENTINDEX in [1..$HIERARCHYELEMENTSIZE] ) $HIERARCHYELEMENT.get($HIERARCHYELEMENTINDEX){ ## Set the tunnel services setting for the first PIC in FPC 0 #if($HIERARCHYELEMENTINDEX == 1 && $HIERARCHYELEMENT.get(0) == "FPC 0") tunnel-services { bandwidth 1g; } #end traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } #end } #end }
Parameters
参数 |
细节 |
---|---|
$ELEMENTS |
这是一个不可见的字段,用户在执行时无法设置该值。这些值以预先定义的 XPath 的形式出现 Type:不可见字段 Configured Value XPath: /device/chassis-inventory/chassis/chassis-模块[开始-with(名称,“FPC”)] /名称/文本()/设备/机箱-库存/机箱/机箱-模块[开始-with (姓名,“FPC”)]/chassis-sub-模块[开始带(名称,“PIC”)]/名称/文本() 此 XPath 会返回 FPC 列表,而 PIC 是深度优先遍历顺序。 |
执行此 CLI 配置时,$ELEMENTS param 的 XPath 将返回设备中存在的 FPC 和 PIC 列表。例如,值为 [FPC 0、PIC 0、PIC 1、FPC 1、PIC 0、PIC 1] 此顺序表示关联
FPC 0
PIC 0
PIC 1
FPC 1
PIC 0
PIC 1
执行 CLI 配置时,我们会获得以下配置字符串
chassis { redundancy { failover on-disk-failure; graceful-switchover; } aggregated-devices { ethernet { device-count 16; } } fpc 1 { pic 0 { tunnel-services { bandwidth 1g; } traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } pic 1 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } } fpc 2 { pic 0 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } pic 1 { traffic-manager { ingress-shaping-overhead 0; egress-shaping-overhead 0; mode ingress-and-egress; } } } }
示例 5:停止物理接口的说明
Context: /设备/接口-信息/物理接口 此 CLI 配置以物理接口为目标
CLI Configlet
interfaces { #if( $INTERFACENAME == 'ge-0/0/0') #terminate('Should not change description for ge-0/0/0 interfaces.') #{else} $INTERFACENAME { unit 0 { description "Similar desc"; family ethernet-switching; } } #end }
参数 |
细节 |
---|---|
$INTERFACENAME |
配置为获取所有接口名称的 XPath 变量。 Configured Value XPath: //device/interface-information/physical-interface/name/text() |
使用$INTERFACE、$UNIT、配置的价值 Xpath、隐形 Params、选择字段;配置编辑器中的可变定义应包含 .get(0),以便从阵列获取值。Eg: $INTERFACE.get (0)
示例 6:从物理接口中删除配置
Context: /设备/接口-信息/物理接口 此 CLI Configlet 可用于删除在物理接口上启用的配置以支持 IEEE 802.3ah 链路故障管理。
CLI Configlet
protocols { oam { ethernet { link-fault-management { delete: interfaces ge-0/0/0; } } } }
确保在适当的层次结构级别插入 delete:
语句,以避免从设备中删除必要配置。