Junos PyEZ 이해하기
Junos PyEZ Python 라이브러리를 사용하여 Junos 디바이스를 원격으로 관리하는 Python 스크립트를 개발합니다.
Junos PyEZ 개요
Junos PyEZ는 Junos 디바이스를 관리하고 자동화할 수 있는 Python용 마이크로프레임워크입니다. Junos PyEZ는 자동화 작업을 위해 구축된 환경에서 사용자가 Junos OS CLI에서 보유할 수 있는 기능을 제공하도록 설계되었습니다. Junos PyEZ는 Junos OS 또는 Junos XML API에 대한 광범위한 지식이 필요하지 않습니다.
Junos PyEZ를 사용하면 익숙한 Python을 사용하여 Junos 디바이스를 관리할 수 있습니다. 그러나 Junos PyEZ를 사용하기 위해 숙련된 프로그래머가 될 필요는 없습니다. 프로그래머가 아닌 사람은 Python 대화형 모드에서 간단한 명령을 빠르게 실행할 수 있으며, 경험이 많은 프로그래머는 작업을 수행하기 위해 더 복잡하고 강력하며 재사용 가능한 프로그램을 만들 수 있습니다.
Junos PyEZ를 사용하면 직렬 콘솔 연결, 텔넷 또는 SSH를 통한 NETCONF 세션을 사용하여 디바이스에 직접 연결할 수 있습니다. 또한 Junos PyEZ는 텔넷 또는 SSH 연결을 통해 디바이스의 CONSOLE 포트에 연결된 콘솔 서버에 대한 디바이스 연결도 지원합니다. Junos PyEZ를 사용하여 디바이스에 직접 연결되어 있을 때 직렬 콘솔 연결을 사용하거나 디바이스에 직접 연결된 콘솔 서버를 통해 텔넷 또는 SSH를 사용하여 원격 액세스를 위해 아직 구성되지 않은 새 디바이스 또는 영점화된 디바이스를 초기에 구성할 수 있습니다.
Junos PyEZ는 디바이스, 소프트웨어 및 파일 시스템 유틸리티를 제공하여 Junos 디바이스에서 일반적인 운영 작업을 수행할 수 있게 해줍니다. Junos PyEZ를 사용하여 수행할 수 있는 작업은 다음과 같습니다.
디바이스에서 팩트 또는 운영 정보 검색
Junos XML API를 통해 사용 가능한 원격 프로시저 호출(RPC) 실행
Junos OS 소프트웨어 설치 또는 업그레이드
디바이스를 재부팅하거나 종료합니다
파일 복사 및 체크섬 계산과 같은 일반적인 관리 작업 수행
Junos PyEZ를 사용하면 Junos 디바이스 구성을 관리할 수도 있습니다. Junos PyEZ 구성 관리 유틸리티를 사용하면 다음을 수행할 수 있습니다.
구성 데이터 검색
구성 비교
구성 변경 사항 업로드 및 커밋
구성 롤백
복구 구성 관리
Junos PyEZ는 ASCII 텍스트, Junos XML 요소, Junos OS set 명령 및 JSON(JavaScript Object Notation)을 포함한 구성 데이터의 표준 형식을 지원합니다. 유연성과 사용자 정의를 추가하기 위해 Jinja2 템플릿 및 템플릿 파일을 사용할 수도 있습니다. 또한 테이블 및 뷰를 사용하여 프로그래밍 방식으로 디바이스를 구성하는 데 사용할 수 있는 구조화된 리소스를 정의할 수 있습니다.
Junos PyEZ 테이블 및 보기를 사용하면 Junos 디바이스를 구성하고 디바이스에서 특정 운영 정보 또는 구성 데이터를 추출할 수 있습니다. 테이블과 뷰는 키-값 쌍 매핑이 포함된 간단한 YAML 파일을 사용하여 정의하므로 이를 사용하는 데 복잡한 코딩이 필요하지 않습니다. 테이블 및 뷰를 사용하여 디바이스 구성 또는 Junos 명령 또는 RPC에 대한 출력을 검색한 다음 사용자 지정된 정보 하위 집합을 추출할 수 있습니다. 이는 or show interfaces 명령과 같이 show route 광범위한 명령 출력에 포함된 몇 가지 특정 필드에서 정보를 검색해야 할 때 유용합니다. 또한 테이블 및 뷰를 사용하여 구조화된 구성 리소스를 정의할 수 있습니다. Junos PyEZ는 리소스에 대한 구성 클래스를 동적으로 생성하므로 디바이스에서 프로그래밍 방식으로 리소스를 구성할 수 있습니다.
Junos PyEZ의 이점
Python 프로그래머는 물론 비프로그래머도 쉽게 Junos 디바이스를 관리하고 자동화할 수 있는 추상화 계층을 제공합니다.
운영자가 일반적인 작업을 자동화할 수 있도록 하여 운영 효율성을 높이고 디바이스의 수동 설정 및 관리를 줄입니다.
대상 리소스의 구조화된 구성 변경을 가능하게 하여 오류와 위험을 최소화합니다.
자동화 스크립트에서 Junos PyEZ 사용
Junos OS 및 Junos OS Evolved에는 지원되는 디바이스의 소프트웨어 이미지에 Python 확장 패키지와 Junos PyEZ 라이브러리가 포함되어 있습니다. 이러한 확장을 사용하면 Junos PyEZ를 사용하여 RPC를 실행하고 디바이스에서 운영 및 구성 작업을 수행하는 온박스 Python 스크립트를 만들 수 있습니다. Junos PyEZ는 커밋, 이벤트, op 및 SNMP 스크립트에서 지원됩니다. 주니퍼 Extension Toolkit(JET) 스크립트; 그리고 YANG 액션 및 번역 스크립트.
표 1 에는 주어진 Junos OS 릴리스를 실행하는 지원되는 디바이스에서 사용할 수 있는 Junos PyEZ 버전이 요약되어 나와 있습니다. 예를 들어, Junos OS 릴리스 17.4R1부터 온박스 Python 스크립트는 Junos PyEZ 릴리스 2.1.4 및 이전 릴리스의 기능을 활용할 수 있습니다.
Junos OS 릴리스 |
Junos PyEZ 버전 |
|---|---|
16.1R3부터 17.3까지 |
1.3.1 |
17.4R1부터 19.3까지 |
2.1.4 |
19.4R1 이상 |
2.2.0 |
온박스 Python 자동화 스크립트 생성에 대한 자세한 내용은 Junos OS 자동화 스크립팅 사용 설명서의 Junos OS 실행하는 디바이스용 Python 자동화 스크립트 이해를 참조하십시오.
Junos PyEZ 리소스
주니퍼 네트웍스는 표 2에 설명된 다양한 Junos PyEZ 리소스를 제공합니다.
자료 |
설명 |
URL |
|---|---|---|
API 참조 |
Junos PyEZ 모듈에 대한 자세한 문서입니다. |
|
Day 1: Junos PyEZ 쿡북 및 스크립트 리포지토리 |
설정 가이드, 스타트업 샌드박스, GitHub에서 제공되는 전체 자동화 스크립트 쇼케이스가 포함된 Junos PyEZ 네트워크 자동화 쿡북입니다. |
https://www.juniper.net/documentation/en_US/day-one-books/DO_PyEZ_Cookbook.pdf https://github.com/Juniper/junosautomation/tree/master/pyez/PyEZ_Cookbook_2017 |
설명서 |
Junos PyEZ를 설치하고 Junos PyEZ를 사용하여 Junos 디바이스에서 운영 및 구성 작업을 수행하는 방법에 대한 자세한 정보가 포함된 Junos Junos PyEZ 문서입니다. |
https://www.juniper.net/documentation/product/us/en/junos-pyez |
GitHub 리포지토리 |
Junos PyEZ 프로젝트를 위한 공개 리포지토리입니다. 이 저장소에는 모든 릴리스에 대한 최신 소스 코드, 설치 지침 및 릴리스 노트 요약이 포함되어 있습니다. |
|
Google 그룹스 포럼 |
질문에 답하고 Junos PyEZ에 대한 일반적인 지원을 제공하는 포럼입니다. |
|
샘플 스크립트 |
시작하는 데 도움이 되는 Junos PyEZ 샘플 스크립트. |
|
Stack Overflow 포럼 |
질문에 답하고 Junos PyEZ에 대한 일반적인 지원을 제공하는 포럼입니다. |