Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ 구성 테이블에 대한 뷰 정의

Junos PyEZ 구성 테이블은 Junos 디바이스의 선택된 구성 데이터베이스에서 특정 데이터를 추출하거나 프로그래밍 방식으로 Junos 디바이스를 구성하는 데 사용할 수 있는 구조화된 리소스를 정의할 수 있습니다. 테이블은 테이블 데이터의 요소를 선택하고 참조하는 데 사용되는 뷰와 연결됩니다. Table 이름을 인수로 사용하는 Table 정의에 속성을 포함하여 view Table을 특정 View와 연결합니다.

는 사용자 정의 필드 이름을 선택한 테이블 항목의 XML 요소에 매핑합니다. View를 사용하면 Python에서 조작할 수 있는 속성을 가진 변수로 데이터의 특정 필드에 액세스할 수 있습니다. Junos PyEZ는 Python으로 데이터 추출은 물론 모든 유형 변환 또는 데이터 정규화를 처리합니다.

또는 set 속성이 있는 get 테이블을 사용하여 구성 데이터를 검색할 때 View 필드는 응용 프로그램이 개체에 대해 검색해야 하는 구성 데이터를 지정합니다. 속성을 포함하고 set 디바이스에서 구성할 수 있는 리소스를 정의하는 테이블의 경우, 보기에 정의된 필드는 해당 리소스에 대해 구성할 수 있는 문을 제한합니다.

테이블과 같은 Junos PyEZ 뷰는 YAML을 사용하여 형식이 지정됩니다. 구성과 연관된 정의 보기 테이블에는 여러 매개변수가 포함될 수 있으며, 이는 표 1에 요약되어 있습니다.

표 1: Junos PyEZ 구성 뷰 매개 변수

매개변수 이름 보기

매개변수 보기

테이블 유형

설명

보기 이름

get 또는 set

사용자 정의 뷰 식별자입니다.

필드 항목

fields

get 또는 set

구성 데이터의 요소를 선택하는 XPath 표현식에 사용자 정의 필드 이름을 매핑하는 키-값 쌍의 연관 배열 또는 사전입니다. 필드 이름은 유효한 Python 변수 이름이어야 합니다. XPath 식은 해당 테이블의 또는 set 속성에 의해 get 정의된 컨텍스트를 기준으로 합니다.

테이블 범위에서 를 사용하는 get경우 필드는 구성에서 추출할 데이터를 식별합니다. 테이블 범위에서 를 사용하는 set경우 필드는 작업에 따라 구성하거나 검색할 수 있는 요소를 식별합니다.

필드 그룹

fields_group

get 또는 set

구성 데이터의 요소를 선택하는 XPath 표현식에 사용자 정의 필드 이름을 매핑하는 키-값 쌍의 연관 배열 또는 사전입니다. 필드 이름은 유효한 Python 변수 이름이어야 합니다. XPath 표현식은 해당 groups 매개변수에 의해 설정된 컨텍스트를 기준으로 합니다.

테이블 범위에서 를 사용하는 get경우 필드는 구성에서 추출할 데이터를 식별합니다. 테이블 범위에서 를 사용하는 set경우 필드는 작업에 따라 구성하거나 검색할 수 있는 요소를 식별합니다.

그룹

groups

get 또는 set

사용자 정의 그룹 이름을 해당 그룹의 필드에 대한 XPath 컨텍스트를 설정하는 XPath 표현식에 매핑하는 키-값 쌍의 연관 배열 또는 사전입니다. Xpath 표현식은 해당 테이블의 또는 set 속성에 의해 정의된 컨텍스트를 get 기준으로 합니다.

다음 Junos PyEZ 구성 테이블 및 뷰를 고려하십시오. UserTable속성을 포함하는 get 은(는) 대상 디바이스의 사용자 계정에 대한 구성 데이터를 추출합니다. UserConfigTable속성을 포함하는 set 은(는) 대상 디바이스에서 사용자 계정을 구성하고 사용자 계정에 대한 구성 데이터를 검색하는 데 사용할 수 있는 구조화된 구성 리소스를 정의합니다.

다음 섹션에서는 뷰의 다양한 구성 요소에 대해 설명합니다.

보기 이름

뷰 이름은 뷰에 대한 사용자 정의 식별자입니다. Table 정의에 속성을 포함하고 view View 이름을 인수로 제공하여 Table을 특정 View와 연결합니다. 예를 들어:

필드 (필드)

선택한 구성 데이터에서 필요한 요소만 참조하도록 보기를 사용자 지정합니다. 이렇게 하려면 구성 테이블 항목에서 fields 원하는 요소를 선택하는 XPath 식에 대한 사용자 정의 필드 이름 매핑을 포함하는 연관 배열과 속성을 포함합니다. 필드 이름은 유효한 Python 변수 이름이어야 합니다. XPath 표현식은 테이블 정의의 또는 set 특성에 의해 get 정의된 구성 범위에 상대적입니다.

또는 set 속성을 포함하는 get 테이블을 사용하여 구성 데이터를 검색할 때 뷰에 정의된 필드는 구성에서 추출할 문을 식별합니다. 속성을 포함하고 set 디바이스에서 구성할 수 있는 리소스를 정의하는 테이블의 경우, 필드는 해당 리소스에 대해 구성할 수 있는 문을 식별합니다. 구성 리소스의 모든 identifier 요소에 대한 필드를 명시적으로 정의해야 합니다. 그런 다음 이러한 식별자 필드는 해당 테이블 정의의 key-field 속성에서 참조됩니다.

다음 샘플 구성 계층을 고려하십시오.

Table get 또는 set 매개 변수가 범위를 로 system/login/user정의하는 경우 View 정의의 각 필드에 대한 XPath 식은 해당 컨텍스트를 기준으로 합니다. 다음 뷰 정의는 사용자 정의 필드 이름 username, userclass및 을uid(를) 요소의 자식 요소에 매핑합니다.<user>

테이블 정의에 속성이 포함된 set 경우, 개체를 고유하게 식별하는 식별자 요소에 대한 필드를 명시적으로 정의해야 하며, 이 경우에는 <name>입니다. Table의 key-field 속성은 개체의 식별자 요소에 매핑되는 모든 View 필드를 참조해야 합니다. 항상 테이블의 및 key-field 속성에 set 하나 이상의 identifier 요소를 fields 정의해야 합니다.

그런 다음 Python 스크립트에서 View 항목을 변수 속성으로 액세스할 수 있습니다.

참고:

구성 데이터를 검색할 때 데이터에 요소가 <name> 있는 각 개체에는 해당 요소의 값에 액세스하는 데 사용할 수 있는 기본 name 속성이 있습니다.

뷰 필드에는 해당 뷰를 참조하는 테이블의 유형에 따라 다양한 옵션이 포함될 수 있습니다. 구조화된 구성 리소스(set)를 정의하는 테이블에는 디바이스에서 리소스를 구성할 때 Junos PyEZ 애플리케이션이 유효한 데이터를 제공하는지 확인하기 위해 각 필드에 대한 유형 및 제약 조건 검사가 포함될 수 있습니다. 구성 데이터()를 검색하는 테이블에는get 특정 요소에 대한 속성 값을 반환하거나 응용 프로그램에서 사용할 데이터 유형을 지정하는 옵션이 포함될 수 있습니다. 필드 옵션('get' 테이블)필드 옵션('set' 테이블)은 각각 및 set 테이블을 사용할 get 때 포함할 수 있는 옵션을 간략하게 설명합니다.

필드 옵션('get' 테이블)

속성을 포함하고 get 디바이스에서 구성 데이터만 검색하는 테이블은 연결된 뷰의 필드에 대한 여러 옵션 또는 연산자를 정의할 수 있습니다. 이 섹션에서는 다양한 옵션에 대해 간략하게 설명합니다.

필드 형식은 필드 값의 형식을 결정합니다. 기본적으로 필드 값은 문자열로 저장됩니다. 필드 매핑의 값에 대해 다른 유형을 지정할 수 있습니다. 다음 예제에서는 요소의 값을 uid 정수로 정의합니다.

다음 구문을 사용하여 필드 항목의 값을 Boolean으로 설정할 수도 있습니다.

요소의 값은 에 전달된 정규 표현식에 대해 평가됩니다 regex(). 요소의 값이 표현식과 일치하면 필드 항목의 값이 형식에 정의된 부울로 설정됩니다. 다음 예제에서는 superuser 요소 값에 'super-user'가 class 포함된 경우 필드가 True로 설정됩니다.

Junos PyEZ는 또한 구성 뷰의 group 필드에 대한 연산자를 제공합니다. 이 연산자를 group 사용하면 Junos 구성 그룹에서 상속된 요소의 속성 값에 junos:group 액세스할 수 있습니다. 이 값은 해당 요소가 상속된 그룹을 나타냅니다.

예를 들어 다음 구성 remote 에서 사용자는 계층 수준에서 구성된 [edit groups global] 구성 그룹에서 상속 global 됩니다.

필드 매핑에 연산자를 group 포함하여 요소의 값 대신 속성의 값을 junos:group 참조합니다. 다음 예제에서는 연산자를 uidgroup 사용하여 groupfullgroup 필드를 정의합니다. 스크립트에서 이러한 필드 이름에 액세스하면 필드는 또는 full-name 요소와 연결된 속성의 값을 junos:group 참조합니다uid.

필드 옵션('set' 테이블)

구조화된 구성 리소스(set)를 정의하는 테이블에는 디바이스에서 리소스를 구성할 때 Junos PyEZ 애플리케이션이 유효한 데이터를 제공하는지 확인하기 위해 연결된 보기의 각 필드에 대한 유형 및 제약 조건 검사가 포함될 수 있습니다. 유형 검사는 Junos PyEZ 애플리케이션이 특정 리소스에 대한 문을 구성할 때 올바른 데이터 유형을 제공하는지 확인합니다. 제한조건 검사를 사용하면 명령문에 대한 기본값을 정의하고 애플리케이션이 해당 명령문에 대해 올바른 범위에 있는 값을 제공하는지 확인할 수 있습니다. 연결된 View의 필드에 대한 옵션으로 포함된 지원되는 유형 및 제약 조건 검사는 이 섹션에 간략하게 설명되어 있습니다.

표 2표 3 에는 구성 테이블의 뷰에서 필드에 대해 정의할 수 있는 유형 및 제약 조건 검사가 각각 요약되어 있습니다 set . 유형 검사는 상호 배타적이지만 각 필드에 대해 여러 제약 조건 검사를 정의할 수 있습니다.

표 2: 'set' 구성 테이블에 대한 유형 검사

type

설명

예제

bool

필드는 또는 의 부울 값만 허용합니다.TrueFalse

enable: { 'enable' : { 'type': 'bool' } }

enum

필드는 목록에 정의된 enum 값 중 하나만 허용합니다

enc : { 'encapsulation' : {'type' : { 'enum' : ['vlan-ccc','vlan-vpls'] }}}

float

필드는 부동 소수점 값만 허용합니다.

drift : { 'clock-drift' : { 'type' : 'float' } }

int

필드는 정수 값만 허용합니다.

uid: { 'uid' : { 'type' : 'int' } }

str

필드는 문자열 값만 허용합니다.

name: { 'name': {'type': 'str' } }

표 3: 'set' 구성 테이블에 대한 제약 조건 검사

제약 조건 검사 이름

설명

예제

default

필드의 기본값입니다.

필드는 사용자가 필드를 명시적으로 구성하지 않을 때 기본값을 사용합니다. 사용자가 응용 프로그램에서 필드 값을 다시 설정하기 위해 메서드를 호출 reset() 하면 정의된 기본값이 있는 필드가 해당 값으로 설정됩니다.

native_vlan : { 'native-vlan-id' : { 'type' : 'int', 'default' : 501 } }

maxValue

필드에 type따라 해석되는 필드의 최대값입니다.

native_vlan : { 'native-vlan-id' : { 'type' : 'int', 'minValue' : 0, 'maxValue' : 4094 } }

minValue

필드에 type따라 해석되는 필드의 최소값 .

native_vlan : { 'native-vlan-id' : { 'type' : 'int', 'minValue' : 0, 'maxValue' : 4094 } }

필드에 대해 단일 유형 검사만 정의할 수 있지만 여러 제약 조건 검사를 정의할 수 있습니다. 따라서 필드는 값, 최소값(minValue) 및 최대값(maxValue)을 포함할 default 수 있습니다.

minValuemaxValue 옵션은 옵션의 값에 type 따라 해석됩니다. 기본적으로 필드 값은 문자열입니다. 문자열의 경우, minValuemaxValue 는 문자열의 최소 및 최대 길이입니다. 정수와 부동 소수점의 경우 값은 해당 형식의 최소값과 최대값입니다.

필드에 대한 유형 또는 제약 조건 검사를 포함하고 사용자가 검사에 실패한 구성 데이터를 제공하는 경우, Junos PyEZ 애플리케이션은 오류를 설명하는 메시지와 함께 적절한 TypeError 또는 ValueError 예외를 발생시킵니다.

그룹(그룹) 및 필드 그룹(fields_)

그룹은 테이블 항목의 특정 노드 집합 내에서 요소를 선택하고 참조할 수 있는 바로 가기 방법을 제공합니다.

다음 구성 데이터에서 <authentication> 요소에는 사용자의 인증 방법에 해당하는 자식 요소가 포함되어 있습니다.

View 정의 내에서 속성을 사용하면 fields 선택한 구성 계층을 기준으로 각 요소에 전체 XPath 식을 제공하여 자식 요소에 액세스할 수 있습니다. 예를 들어 Table get 또는 set 속성이 계층 수준에서 요소를 [edit system login] 선택하는 <user> 경우 필드 항목 매핑은 다음 XPath 식을 사용합니다.

또는 XPath 컨텍스트 <authentication> 를 요소로 설정하는 그룹을 만든 다음 해당 컨텍스트와 관련된 XPath 식만 제공하는 필드 그룹 항목을 정의할 수 있습니다. View 정의 내에서 원하는 수의 그룹을 정의할 수 있습니다.

그룹을 작성하려면 특성을 포함하고 groups 사용자 정의 그룹 이름을 새 컨텍스트를 정의하는 XPath 표현식에 맵핑하십시오. 그런 다음 이름 fields_ 뒤에 그룹 이름이 오는 필드 그룹을 정의합니다. 필드 그룹은 사용자 정의 필드 이름과 XPath 표현식의 매핑을 포함하는 연관 배열로, 이제 에 groups설정된 컨텍스트에 상대적입니다. 필드 이름은 유효한 Python 변수 이름이어야 합니다.

다음 예는 그룹 auth 및 해당 필드 group fields_auth을 정의합니다. auth 그룹은 컨텍스트를 system/login/user/authentication 계층 수준으로 password 설정하고 필드는 요소의 값을 참조합니다 encrypted-password .

필드 또는 필드 그룹 중 어떤 것을 사용하든, 사용자 정의 필드 이름을 사용하여 Junos PyEZ 스크립트 내에서 동일한 방식으로 값에 액세스합니다.