Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TextFSM 템플릿과 함께 Junos PyEZ 테이블 사용

Junos PyEZ 운영(op) 테이블은 단독으로 또는 Junos PyEZ View와 함께 TextFSM 템플릿을 참조하여 모든 네트워크 디바이스의 CLI 또는 VTY 명령 출력을 구문 분석할 수 있습니다.

TextFSM 템플릿 이해

Junos PyEZ op 테이블은 네트워크 디바이스의 CLI 또는 VTY 명령 출력에서 데이터를 추출할 수 있습니다. 테이블은 뷰를 참조하여 명령 출력의 필드를 Python 개체에 매핑할 수 있습니다. Junos PyEZ op Tables는 단독으로 또는 View와 함께 TextFSM 템플릿을 참조하여 명령 출력을 구문 분석할 수도 있습니다. Junos PyEZ op Tables는 TextFSM 템플릿을 사용하여 공급업체, 네트워크 OS 또는 명령에 관계없이 모든 네트워크 디바이스의 명령 출력을 구문 분석할 수 있습니다.

TextFSM 는 네트워크 디바이스에서 show 명령 출력과 같은 반포맷 CLI 출력을 구문 분석하는 Python 라이브러리입니다. Google에서 개발했으며 나중에 Apache 2.0 라이선스에 따라 출시되었습니다. 모듈에는 템플릿과 일부 입력 텍스트가 필요합니다. 템플릿은 정규식을 사용하여 데이터를 구문 분석하는 방법을 설명하며, 동일한 데이터에 여러 템플릿을 정의하고 적용할 수 있습니다.

TextFSM의 클래스를 사용하면 CliTable 주어진 플랫폼의 명령을 명령 출력을 구문 분석하는 템플릿에 매핑할 수 있습니다. 네트워크 자동화 회사인 Network to Code는 네트워크 디바이스용 TextFSM 템플릿 리포지토리와 함께 Python 래퍼를 개발 CliTable 했습니다. 필요에 따라 Junos PyEZ 서버 또는 가상 환경에 라이브러리를 ntc-templates 설치할 수 있습니다. 그런 다음 Junos PyEZ 테이블에서 NTC 템플릿 및 기타 TextFSM 템플릿을 참조합니다.

NTC 템플릿은 네트워크 디바이스의 show 명령 출력을 구문 분석합니다. 각 NTC 템플릿은 주어진 명령에 대한 예상 출력 필드를 정의하고 각 항목에 대해 데이터를 헤더에 매핑합니다. NTC 템플릿 파일명은 플랫폼(벤더 및 네트워크 OS)과 명령(밑줄 포함)을 식별하므로 시스템에서 사용할 템플릿을 쉽게 결정할 수 있습니다. 파일 이름 형식은 다음 구문을 사용합니다.

예를 들어 juniper_junos_show_arp_no-resolve.textfsm 템플릿을 고려하십시오.

템플릿은 show arp no-resolve Junos OS 또는 Junos OS Evolved를 실행하는 주니퍼 네트웍스 디바이스의 명령 출력을 구문 분석합니다.

Junos PyEZ op 테이블은 NTC 템플릿 또는 기타 TextFSM 템플릿을 사용하여 구조화되지 않은 명령 출력을 구문 분석할 수 있습니다. 이 테이블은 다음 필드를 정의하여 TextFSM 템플릿을 사용합니다. Junos PyEZ는 및 command 값을 사용하여 platform 템플릿의 파일 이름을 결정합니다.

  • command: command- 구문 분석할 출력을 생성하는 명령입니다. 명령은 NTC 템플릿 또는 기타 TextFSM 템플릿의 파일 이름에 있는 명령 문자열에 매핑되어야 합니다.

  • key: key- 레코드 항목을 고유하게 식별하는 데 사용되는 TextFSM 템플릿 또는 Junos PyEZ 보기에 정의된 필드입니다.

  • platform: platform- TextFSM 템플릿의 공급업체 및 OS(예 juniper_junos: ). 플랫폼 값은 NTC 템플릿 또는 기타 TextFSM 템플릿의 파일 이름에 있는 플랫폼 문자열과 일치해야 합니다.

  • use_textfsm: True- 주어진 플랫폼 및 명령에 대한 TextFSM 템플릿을 사용하여 명령 출력을 구문 분석하려면 로 True 설정합니다.

TextFSM 템플릿을 사용하여 명령 출력을 구문 분석하는 방법

Junos PyEZ 테이블은 사전 정의된 NTC 템플릿을 포함한 TextFSM 템플릿을 사용하여 Junos 디바이스의 show 명령 출력을 구문 분석할 수 있습니다.

Junos PyEZ 테이블에서 TextFSM 템플릿을 사용하려면

  1. Junos PyEZ 서버 또는 가상 환경에 라이브러리를 ntc-templates 설치합니다.

  2. , key, platform, 인 use_textfsm 수는 물론 작업에 필요한 추가 인수를 포함하는 command사용자 지정 Junos PyEZ 테이블을 생성합니다.

    Junos PyEZ 애플리케이션은 및 command 값을 사용하여 platform 템플릿의 파일 이름을 결정합니다(이 경우 juniper_junos_show_arp_no-resolve.textfsm). key 값은 템플릿의 헤더와 일치해야 합니다.

  3. 테이블을 사용하여 데이터를 검색하는 Junos PyEZ 애플리케이션을 생성합니다.

  4. 애플리케이션을 실행합니다.

    테이블은 NTC 템플릿을 사용하여 출력 필드를 추출합니다. 각 테이블 항목에 대해 응용 프로그램은 각 필드에 대해 정의된 키와 데이터를 반환합니다.

Junos PyEZ 보기와 함께 TextFSM 템플릿을 사용하여 명령 출력을 구문 분석하는 방법

Junos PyEZ 테이블은 TextFSM 템플릿과 Junos PyEZ View를 결합하여 명령 출력을 구문 분석할 수 있습니다. TextFSM 템플릿은 데이터를 헤더에 매핑합니다. 보기에서 변수 이름을 반환하려는 필드의 템플릿에 정의된 제목에 매핑할 수 있습니다. 예를 들어 템플릿에 정의된 변수 이름과 다른 변수 이름을 사용하거나 다른 필드를 반환하려는 경우 템플릿과 View를 결합합니다. Junos PyEZ는 TextFSM 템플릿과 Junos PyEZ 보기 모두에 공통적인 필드만 반환합니다.

다음 예제에서는 juniper_junos_show_arp_no-resolve.textfsm 템플릿을 사용하여 명령 출력을 구문 분석합니다. Junos PyEZ 보기는 데이터를 새 변수 이름에 매핑하고 필드의 하위 집합만 반환합니다. 템플릿을 검토하려면 TextFSM 템플릿 이해를 참조하십시오.

Junos PyEZ 테이블에서 TextFSM 템플릿 및 뷰를 사용하려면

  1. 사용자 지정 Junos PyEZ 테이블을 생성하여 인key수는 물론 , , use_textfsmplatform, 및 view 인수는 물론 작업에 필요한 추가 인수를 포함command합니다.

  2. 반환할 템플릿 필드와 각 필드에 대한 해당 변수 이름을 정의하는 Junos PyEZ 보기를 생성합니다.

    이 경우 보기는 TextFSM 템플릿에 정의된 필드를 FLAGS 매핑하지 않으며 구문 분석된 데이터에는 이 값이 포함되지 않습니다.

  3. 테이블을 사용하여 데이터를 검색하는 Junos PyEZ 애플리케이션을 생성합니다.

  4. 애플리케이션을 실행합니다.

    이 테이블은 NTC 템플릿과 Junos PyEZ View를 사용하여 출력 필드를 추출합니다. 각 테이블 항목에 대해 응용 프로그램은 뷰에 정의된 필드에 대한 정의된 키와 데이터를 반환합니다.

사용자 정의 TextFSM 템플릿을 사용하는 방법

Junos PyEZ 테이블은 패키지의 일부로 설치되는 TextFSM 템플릿을 사용할 수 있습니다. ntc-templates 또한 사용자 정의 TextFSM 템플릿을 참조할 수도 있습니다. Junos PyEZ 애플리케이션에서 사용자 정의 TextFSM 템플릿을 사용하려면 먼저 템플릿을 스테이징해야 합니다. 그런 다음 애플리케이션에서 테이블 인스턴스를 정의할 때 템플릿 디렉터리에 대한 절대 경로를 지정합니다.

Junos PyEZ 테이블에서 사용자 정의 TextFSM 템플릿을 사용하려면

  1. 사용자 지정 템플릿을 위한 디렉터리를 만듭니다.

  2. templates 디렉터리에서 템플릿을 만들고 .textfsm 파일명 규칙을 platform_command 사용하여 파일 이름을 지정합니다.

  3. 템플릿 파일명과 동일한 platform 값을 command 정의하는 Junos PyEZ 테이블을 생성합니다.

  4. Junos PyEZ 애플리케이션에서 테이블 인스턴스를 정의할 때 사용자 지정 템플릿 디렉터리에 대한 절대 경로를 지정합니다.

  5. 애플리케이션을 실행합니다.

TextFSM 템플릿과 함께 Junos PyEZ 테이블을 사용하여 공급업체의 명령 출력을 구문 분석하는 방법

Junos PyEZ 테이블은 TextFSM 템플릿을 사용하여 모든 벤더의 네트워크 디바이스에서 명령 출력을 구문 분석할 수 있습니다. Python 애플리케이션은 디바이스에서 출력을 검색하거나 파일에서 출력을 읽을 수 있습니다. 그런 다음 Junos PyEZ 테이블 인스턴스를 생성할 때 인스턴스를 전달하는 대신 명령 출력 문자열을 테이블의 raw 인수에 전달할 수 있습니다 Device .

예를 들어 다음 TextFSM 템플릿을 고려합니다.

템플릿은 주어진 디바이스의 명령 출력을 show alarms detail 구문 분석합니다.

다음 예제에서는 사용자 지정 TextFSM 템플릿인 cisco_xr_show_alarms_detail.textfsm과 View를 모두 사용하여 명령 출력을 구문 분석하는 Junos PyEZ 테이블을 정의합니다 show alarms detail . 이 예에서는 라이브러리를 netmiko 사용하여 디바이스에서 직접 데이터를 검색합니다. 애플리케이션이 Table 인스턴스 raw 를 만들 때 인수는 명령 출력을 전달하고 template_dir 인수는 사용자 지정 템플릿이 포함된 디렉터리의 경로를 정의합니다.

애플리케이션을 실행하면 디바이스에서 명령 출력을 검색합니다. 그런 다음 응용 프로그램은 View와 함께 지정된 디렉터리의 TextFSM 템플릿을 사용하여 출력을 구문 분석합니다. Junos PyEZ는 TextFSM 템플릿과 Junos PyEZ 보기 모두에 공통적인 필드만 반환합니다. 애플리케이션은 명령 출력을 파일에 저장하므로 다음 예제와 같이 나중에 출력을 처리할 수 있습니다.

다음 예제에서는 이전 예제와 동일한 TextFSM 템플릿 및 Junos PyEZ View를 사용하지만, 이 경우 애플리케이션은 파일에서 명령 출력을 읽습니다.