CLI 구성 예시
서버 시작 또는 데이터 마이그레이션 중에 기본 구성이 추가됩니다. 이러한 기본 구성 요소는 초기 서버 시작 및 데이터 마이그레이션 중에만 추가됩니다. 사용자는 삭제 작업을 포함하여 기본 Xpath 및 Regex에서 모든 일반적인 작업을 수행할 수 있습니다.
마이그레이션 중에 기본 구성을 추가하면 다음과 같은 조건이 있습니다.
13.1 ~ 13.3:
동일한 이름의 엔터티가 13.1에 존재하지 않으면 기본 구성 항목이 추가됩니다.
동일한 이름의 엔터티가 13.1에 존재하는 경우 기본 구성 항목이 덮어 작성됩니다.
13.3 이후 릴리스:
13.3에서 사용자가 기본 구성을 수정하거나 삭제한 경우, 기본 구성 항목이 추가되거나 덮어쓰기되지 않습니다.
예 1: 물리적 인터페이스의 설명 설정
Context: /device/interface-information/physical-interface 이 구성은 물리적 인터페이스를 대상으로 합니다.
Configlet
interfaces { $INTERFACE{ description "$DESC"; } }
Parameters
매개 변수 |
세부 정보 |
---|---|
$INTERFACE |
이것은 기본 변수이며, 값은 컨피글렛이 에서 호출되는 인터페이스의 이름이 될 것입니다. 실행이 특정 인터페이스에 연결되어 있지 않기 때문에 CLI Configlets 작업 공간에서 구성이 호출되면 NULL이 됩니다. |
$DESC |
설명 문자열을 얻기 위한 텍스트 필드. 실행 시 가치가 있습니다. |
CLI 구성을 적용할 때 사용자는 매개 변수를 입력해야 합니다. 예를 들어 사용자는 $DESC 값을 입력해야 합니다.
인터페이스 ge-0/1/3에 적용되는 예제를 고려하고 다음 값은 입력으로 제공됩니다.
매개 변수 |
값 |
---|---|
$DESC |
DESC 테스트 |
생성된 구성 문자열은
interfaces { ge-0/1/3{ description "TEST DESC"; } }
예 2: 논리 인터페이스의 vlan 설정, 여기서 vlan id는 미리 정의된 값 집합에서 선택됨
Context:/디바이스/구성/인터페이스/인터페이스/유닛 이 CLI 구성은 논리적 인터페이스를 대상으로 합니다.
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 Configlet이 CLI 구성 작업 공간에서 호출되면 NULL이 됩니다. |
$UNIT |
이것은 기본 변수이며, 값은 CLI Configlet이 에서 호출되는 논리적 인터페이스의 단위 이름이 될 것입니다. 실행이 특정 논리적 인터페이스에 연결되어 있지 않기 때문에 CLI Configlet이 CLI 구성 작업 공간에서 호출되면 NULL이 됩니다. |
$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 또는 /디바이스. 디바이스 대상인 디바이스의 컨텍스트는 null 또는 /device일 수 있습니다.
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: FPC 0의 첫 번째 PIC에서만 디바이스 및 특정 구성에 속하는 모든 PIC에서 구성 설정
Context: NULL 또는 /디바이스. 디바이스 대상인 디바이스의 컨텍스트는 null 또는 /device일 수 있습니다.
##$ELEMENTS : /디바이스/섀시-인벤토리/섀시/섀시 모듈[시작(이름,"FPC")]
/name/text() | /디바이스/섀시-인벤토리/섀시/섀시 모듈
[starts-with(이름,"FPC")]/chassis-sub-module[starts-with(이름,"PIC")]/name/text()
##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-module[starts-with(이름,"FPC")] /name/text()/디바이스/섀시-인벤토리/섀시/섀시 모듈[시작-with (이름,"FPC")] /chassis-sub-module[starts-with(이름,"PIC")]/name/text() 이 XPath는 FPC 목록을 반환하고 PIC는 Depth First Traversal 순서입니다. |
이 CLI Configlet을 실행하는 동안, $ELEMENTS 패러다임의 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: /device/interface-information/physical-interface 이 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)를 포함해야 합니다. 예: $INTERFACE.get(0)
예 6: 물리적 인터페이스에서 구성 삭제
Context: /device/interface-information/physical-interface 이 CLI 컨피글렛은 IEEE 802.3ah 링크 장애 관리를 지원하기 위해 물리적 인터페이스에서 활성화된 구성을 삭제하는 데 사용할 수 있습니다.
CLI Configlet
protocols { oam { ethernet { link-fault-management { delete: interfaces ge-0/0/0; } } } }
디바이스에서 필요한 구성이 delete:
삭제되지 않도록 적절한 계층 수준에서 문을 삽입해야 합니다.