PyEZ라는 Junos OS 장비를 다룰 수 있도록 해주는 Python용 micro-framwork라고 하는 Library를 다뤄봅니다.
이번 포스팅에서는 PyEZ가 무엇인지 아주 간단히, 그리고 아주 간단한 예제를 통해서 가볍게 접근해봅니다.
Juniper PyEZ Library
○ PyEZ 란?
- Junos OS 장비를 원격에서 관리 및 자동화하는 Python으로 만든 'micro-framework'
- Junos OS 혹은 , Junos OS XML API에 대한 이해가 복잡하게 필요하지 않음
- 비개발자에게는 원격지의 Junos OS 장비의 자동화 업무 등의 할 수 있도록 하는 간단한 Power Shell 역할을 함.
- 개발자에게는 보다 큰 네트워크 인프라의 자동화 관점에서 사용할 수 있는 확장성 있게 사용할 수 있는 Library 역할을 함.
○ PyEZ 기능
- Junos OS CLI의 기반에서의 동일한 기능을 할 수 있도록 설계.
- 'fact'를 사용한 Software version, serial 등의 정보 제공
- 현재 동작 상태 정보를 확인 ('Show' 명령)
- snippets와 templates를 사용하여, unstructured configuration 변경
- 추상화 된 모델을 통하여 structured configuration 변경
○ Architecture
- ncclient library는 NETCONF를 통해서 벤더에 상관없이 사용 가능하도록 함
- Junos-pyez는 Junos OS 장비를 쉽게 통신하여 관리할 수 있도록 만들어진 Micro-framework.
PyEZ Library Install
1. 다음과 같이 PyEZ Library를 사용하기 위하여 Install을 한다. [ Windows 기준 ]
※ Install 문서 Link.
정상적으로 Junos PyEZ Library가 설치된 것을 확인할 수 있다.
※ 주의사항 : Paramiko 설치되어 있어야 함.
→ jnpr.junos.Device 에서 paramiko Library를 Import해서 사용.
PyEZ 처음 사용해보기
- PyEZ Library를 사용하여, Junos OS 장비에 접속하여 해당 장비의 Hostname과 Version 정보를 가져오기
- 장비 접속 시, jnpr.junos의 Device라는 클래스를 사용하고, 해당 클래스에서 제공하는 facts를 사용하여 필요한 정보를 가져온다.
- 아래는 10.1.1.97의 IP를 가진 Junos OS 장비에 접속하여 정보를 가져와서 출력하는 예제입니다.