Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ 테이블과 함께 Ansible을 사용하여 Junos 디바이스에서 운영 정보 검색

Ansible 플레이북에서 Junos PyEZ 테이블 및 뷰를 사용하여 Junos 디바이스에서 운영 정보를 검색합니다.

모듈 개요

Junos PyEZ 운영(op) 테이블은 복잡한 운영 명령 출력에서 정보를 추출하는 간단하고 효율적인 방법을 제공합니다. 주니퍼 네트웍스는 Ansible 플레이북 내에서 Junos PyEZ op Tables를 활용할 수 있는 Ansible 모듈을 제공합니다. 표 1에는 모듈의 개요가 나와 있습니다.

표 1: Junos PyEZ 테이블 모듈

컬렉션

모듈 세트

모듈 이름

juniper.device

juniper.device

juniper.device.table

참고:

table 이 모듈은 구성 테이블 및 뷰 사용을 지원하지 않습니다.

Junos PyEZ 테이블 이해하기

Junos PyEZ는 Junos 디바이스를 관리하고 자동화할 수 있는 Python용 마이크로프레임워크입니다. Junos PyEZ는 테이블 및 뷰라고 하는 간단한 YAML 정의를 사용하여 Junos 디바이스에서 운영 명령 출력 및 구성 데이터를 검색하고 필터링할 수 있도록 지원합니다.

Junos PyEZ 운영(op) 테이블은 운영 명령 또는 RPC의 출력에서 정보를 추출합니다. Junos PyEZ jnpr.junos.op 모듈에는 일부 일반적인 RPC에 대한 사전 정의된 테이블 및 뷰 정의가 포함되어 있습니다. 사용자 정의 테이블 및 뷰를 생성할 수도 있습니다.

Ansible을 사용하여 Junos 디바이스를 관리하는 경우 모듈은 table Junos PyEZ 테이블을 사용하여 디바이스에서 데이터를 검색할 수 있습니다. 이 모듈은 Junos PyEZ 배포에 포함된 사전 정의된 운영 테이블 및 뷰를 참조할 수 있습니다. 이 모듈은 Ansible 제어 노드에 있는 사용자 정의 테이블 및 뷰를 참조할 수도 있습니다.

Junos PyEZ 테이블 및 뷰에 대한 일반적인 정보는 Junos PyEZ 개발자 가이드의 다음 섹션 및 관련 문서를 참조하십시오.

주니퍼 네트웍스 Ansible 모듈을 Junos PyEZ 테이블과 함께 사용하는 방법

juniper.device.table 이 모듈에는 사용할 Junos PyEZ 테이블을 지정하는 다음 인수가 포함될 수 있습니다.

  • file—Junos PyEZ 테이블 및 보기를 정의하는 YAML 파일의 파일 이름입니다.

  • path—(선택 사항) 테이블 및 뷰 정의가 있는 YAML 파일이 포함된 디렉터리의 경로입니다. 기본 파일 경로는 jnpr/junos/op 디렉터리 아래의 Junos PyEZ 설치 경로에 있는 사전 정의된 Junos PyEZ op Tables의 위치입니다.

  • table—(선택 사항) 테이블 이름입니다. 파일에 여러 테이블 정의가 포함되어 있거나 파일에 이름에 "테이블"을 사용하지 않는 단일 테이블 정의가 포함된 경우에만 이 옵션을 제공해야 합니다.

예를 들어 다음 작업은 플레이북 디렉터리에 있는 fpc.yaml 파일에 정의된 라는 사용자 지정 테이블FPCTable을 사용하여 데이터를 검색합니다.

juniper.device.table 모듈의 응답에는 테이블에서 반환된 항목 목록이 포함된 키가 포함됩니다resource. 각 목록 항목은 뷰에서 정의한 필드 이름과 각 해당 필드의 데이터에서 추출한 값이 포함된 사전입니다.

Junos PyEZ 배포판의 arp.yml 파일에 있는 다음과 같은 사전 정의된 테이블 및 뷰 ArpTable ArpView와 를 고려하십시오. ArpTable CLI 명령과 동일한 show arp no-resolve 옵션으로 <no-resolve/> RPC를 실행 <get-arp-table-information> 합니다. 해당 보기는 응답의 각 <arp-table-entry> 항목에 대한 MAC 주소, IP 주소 및 인터페이스 이름을 추출합니다.

다음 Ansible 플레이북은 Junos 디바이스에서 ARP(주소 결정 프로토콜) 정보를 검색하는 데 사용하는 ArpTable 모듈을 juniper.device.table 실행합니다. Junos PyEZ 배포판은 기본 디렉터리에 사전 정의된 op Table로 포함되어 ArpTable 있습니다. 따라서 파일 위치를 지정하기 위해 모듈 인수를 포함 path 할 필요가 없습니다. 또한 table 이름에 "Table"이 포함되어 있고 파일에 정의된 유일한 Table이기 때문에 ArpTable 인수가 필요하지 않습니다.

간결성을 위해 잘린 플레이북 출력에는 디바이스에서 반환된 각 <arp-table-entry> 항목에 대해 ArpView에서 정의한 해당 필드가 포함됩니다.

다음 Ansible 플레이북은 사전 정의된 Junos PyEZ 운영 테이블을 OspfInterfaceTable활용하여 Junos 디바이스의 OSPF 인터페이스에 대한 정보를 검색합니다. ospf.yml 파일은 여러 테이블과 뷰를 정의하므로 모듈 호출에는 사용할 테이블을 지정하는 인수가 포함됩니다 table .

RPC 인수 지정

Junos PyEZ 운영 테이블에는 해당 테이블에서 실행되는 RPC에 대한 기본 명령 옵션과 인수를 정의하는 선택적 args 키가 있습니다. 애플리케이션은 사용자가 기본값을 재정의하지 않는 한 기본 옵션으로 RPC를 실행합니다. Junos PyEZ 애플리케이션에서는 메서드를 호출할 때 기본 옵션을 재정의하거나 RPC에 추가 옵션과 인수를 전달할 수 있습니다 get() .

juniper.device.table 또한 이 모듈을 사용하면 Table에 정의된 기본 옵션을 재정의하거나 인수를 사용하여 RPC에 추가 옵션과 인수를 전달할 수 있습니다kwargs. kwargs 값은 명령 옵션 및 값의 사전입니다. 제공된 인수는 RPC와 RPC를 실행하는 디바이스에서 지원되어야 합니다.

예를 들어, ethport.yml 파일에 미리 정의된 Junos PyEZ op Table EthPortTable<get-interface-information> 명령 옵션으로 media RPC를 실행합니다. 기본적으로 RPC는 인터페이스 이름에 대해 주어진 정규식과 일치하는 모든 인터페이스에 대한 정보를 반환합니다.

다음 Ansible 플레이북은 관리되는 디바이스의 인터페이스에 대한 정보를 추출하는 데 사용됩니다EthPortTable. 인수interface_name: "ge-1/0/0"에는 kwargs . 이 인수는 기본값 interface_name 을 재정의 EthPortTable 하고 모듈이 ge-1/0/0 인터페이스에 대해서만 요청된 필드를 검색하도록 지시합니다.

Junos PyEZ 테이블의 기본 및 사용자 제공 명령 옵션과 인수에 대한 자세한 내용은 다음을 참조하십시오.