Junos 디바이스용 Python 자동화 스크립트 이해하기
Python 스크립트 개요
SLAX 및 XSLT의 대안으로 소프트웨어 이미지에서 Python 확장 패키지를 지원하는 Junos 디바이스에서 Python 스크립트를 생성하고 실행할 수 있습니다. Python은 광범위한 라이브러리 지원을 통해 맞춤형 스크립트를 생성할 수 있는 실용적이고 풍부한 기능을 갖춘 언어입니다. 표 1 에는 Junos 장치에서 사용할 수 있는 Python 버전이 개략적으로 설명되어 있으며, 특정 유형의 스크립트에 대해 해당 버전에 대한 지원이 추가되거나 제거된 릴리스에 대해 설명합니다.
Python 버전 |
릴리스 |
변경 |
영향을 받는 스크립트 유형 |
---|---|---|---|
Python 2.7.x |
Junos OS 릴리스 16.1R1 이상 |
추가된 지원 |
커밋, 이벤트, 운영 및 SNMP 스크립트 JET(Juniper Extension Toolkit) 스크립트 YANG 작업 및 변환 스크립트 |
Junos OS 릴리스 20.2R1 이상 |
지원 제거 |
YANG 작업 및 변환 스크립트 |
|
Junos OS 릴리스 21.1R1 이상 |
지원 제거 |
커밋, 이벤트, 운영 및 SNMP 스크립트 JET(Juniper Extension Toolkit) 스크립트 |
|
Junos OS Evolved 릴리스 22.3R1 이상 |
지원 제거 |
커밋, 이벤트, 운영 및 SNMP 스크립트 JET(Juniper Extension Toolkit) 스크립트 YANG 작업 및 변환 스크립트 |
|
Python 3.x |
Junos OS 릴리스 19.4R1 이상 |
추가된 지원 |
커밋, 이벤트, 운영 및 SNMP 스크립트 |
Junos OS 릴리스 20.2R1 이상 |
추가된 지원 |
JET(Juniper Extension Toolkit) 스크립트 YANG 작업 및 변환 스크립트 |
|
Junos OS Evolved 릴리스 21.1R1 이상 |
추가된 지원 지원되는 플랫폼은 Feature Explorer 를 참조하십시오. |
커밋, 이벤트, 운영 및 SNMP 스크립트 JET(Juniper Extension Toolkit) 스크립트 YANG 작업 및 변환 스크립트 |
Python 2.7 수명 종료 및 지원 종료 날짜는 2020년 1월 1일이었습니다. Python 2.7의 공식 업그레이드 경로는 Python 3입니다. 다양한 유형의 온박스 스크립트에 대해 Junos OS를 실행하는 디바이스에 Python 3에 대한 지원이 추가됨에 따라 지원되는 스크립트 유형을 Python 2에서 Python 3으로 마이그레이션하는 것이 좋습니다.
Python 스크립트는 Python 언어로 모든 기능과 구조를 활용할 수 있으며, SLAX 및 XSLT에 대한 유연성을 제공하며 SLAX 및 XSLT에서 실행하기 어렵거나 불가능한 작업을 수행할 수 있습니다. SLAX 및 XSLT는 XML 데이터를 처리하도록 설계되었지만 Python은 모든 형식의 프로세싱에 적합합니다. Python은 목록, 사전, 세트 및 tuples를 포함한 광범위한 데이터 유형 목록을 지원하며 대부분의 SLAX 및 XSLT 변수와는 달리 많은 Python 변수가 가변성입니다. 루프 제어는 SLAX 및 XSLT 스크립트로 제한되지만 Python 스크립트는 루프 동작을 정확하게 제어하는 것과 continue
같은 break
명령문을 사용할 수 있습니다. Python은 파일 작업에 대한 광범위한 지원을 제공하며 명령줄에서 표준 Python 디버거를 호출하여 Python 운영 스크립트를 디버그할 수 있습니다.
또한 Junos OS는 Python 스크립트에서 다음을 지원합니다.
Junos PyEZ 라이브러리—Junos OS를 실행하는 디바이스에서 RPC를 실행하고 운영 및 구성 작업을 수행할 수 있습니다.
lxml
라이브러리—XPath 처리를 간소화합니다.Jinja2 라이브러리—Junos OS 구성 데이터를 생성하는 데 유용할 수 있는 사전 정의된 템플릿에서 컨텐츠를 생성할 수 있는 템플릿 엔진입니다.
IPv6—Junos OS 릴리스 19.3R1부터 Python 자동화 스크립트에서 IPv6를 사용하여 업그레이드된 FreeBSD 지원을 통해 Junos OS를 실행하는 디바이스입니다. 자세한 내용은 Python 자동화 스크립트의 IPv6 지원을 참조하십시오.
기본 설정이 아닌 라우팅 인스턴스—Junos OS 릴리스 19.3R1부터 지원되는 디바이스의 Python 스크립트는 set_routing_instance() 확장 기능을 사용하여 비디폴트 라우팅 인스턴스를 통해 원격 디바이스에 연결할 수 있습니다.
추가 Python 모듈—Junos OS를 실행하는 디바이스의 Python 스크립트에 사용할 수 있는 모듈에 대한 자세한 내용은 Junos OS를 실행하는 디바이스의 Python 모듈 개요를 참조하십시오.
Junos OS를 실행하는 디바이스에서 승인되지 않은 Python 코드가 실행되지 않도록 하려면 서명되지 않은 Python 스크립트가 장비에서 스크립트를 실행하기 전에 특정 요구 사항을 충족해야 합니다. Junos OS를 실행하는 디바이스에서 Python 자동화 스크립트를 실행하기 위한 요구 사항에 대한 자세한 내용은 Junos 디바이스에서 Python 자동화 스크립트를 실행하기 위한 요구 사항을 참조하십시오.
Python 2.7 또는 Python 3 중 하나를 사용하여 서명되지 않은 Python 스크립트를 실행하려면 계층 수준에서 각각 [edit system scripts]
또는 language python3
명령문을 구성 language python
해야 합니다. 명령문을 구성 language python3
하면 디바이스는 Python 3을 사용하여 이 Python 버전을 지원하는 스크립트를 실행하며, 표 1에 명시된 대로 Python 2.7을 사용하여 지정된 Junos OS 릴리스에서 Python 3을 지원하지 않는 스크립트를 실행합니다.
JET 스크립트의 경우 스크립트가 지원하는 Python 버전에 해당하는 명령문 버전을 구성해야 합니다. 예를 들어 Python 2.7만 지원하는 JET 스크립트에 대한 명령문을 구성 language python3
하면 스크립트를 실행할 때 런타임 오류가 발생합니다.
커밋, 이벤트, 운영 및 SNMP 스크립트를 위한 Python 스크립트 입력
Python 자동화 스크립트를 지원하는 Junos OS를 실행하는 디바이스에는 커밋, 이벤트, 운영 및 SNMP 스크립트로 가져올 수 있는 다음 모듈이 포함됩니다.
jcs
모듈—SLAX 및 XSLT 스크립트에서 사용할 수 있는 확장 기능 및 템플릿의 하위 세트에 대한 액세스를 제공합니다.Junos OS 확장 기능 및 템플릿에 대한 자세한 내용은 Junos OS 자동화 스크립트의 확장 기능 이해 및 Junos OS 자동화 스크립트의 명명된 템플릿 이해(Understanding Named Templates)를 참조하십시오.
junos
모듈—표 2에Junos
설명된 클래스 및 스크립트 입력이 포함되어 있습니다.
Python 객체 |
형식 |
스크립트 유형 |
설명 |
XSLT/SLAX 동급 제품 |
---|---|---|---|---|
|
사전 |
커밋 이벤트 Op |
장비 호스트 이름, 스크립트 유형 및 스크립트를 실행하는 사용자와 같은 스크립트 실행 환경에 대한 장치별 정보입니다. |
commit-script-input/junos-context 이벤트 스크립트 입력/junos-context op-script-input/junos-context |
|
lxml.etree _Element |
커밋 |
상속 후 후보 구성(Junos XML 형식) |
커밋 스크립트 입력/구성 |
|
lxml.etree _Element |
이벤트 |
해당 이벤트 정책을 트리거한 이벤트의 세부 정보. |
이벤트 스크립트 입력/트리거 이벤트 |
|
lxml.etree _Element |
이벤트 |
트리거 이벤트 이전에 발생한 상관 이벤트 세부 정보 |
이벤트 스크립트 입력/수신 이벤트 |
|
생성기 기능은 일련의 원격 디바이스를 생성합니다. |
이벤트 |
계층 수준에서 이벤트 스크립트를 위해 구성된 로컬 또는 원격 호스트에 |
이벤트 스크립트 입력/원격 실행 세부 정보 |
다양한 스크립트 입력에 대한 자세한 정보와 자동화 스크립트에서 이러한 입력을 가져오고 사용하는 방법은 다음을 참조하십시오.
Python 스크립트 리소스
표 3 은 Junos OS를 실행하는 디바이스에서 Python 스크립트를 생성하고 실행하는 데 도움이 되는 리소스를 제공합니다. 표 4 는 각기 다른 유형의 스크립트에 대한 리소스를 제공합니다.
리소스 |
설명서 |
---|---|
Python 스크립트 실행 요구 사항 |
|
Junos OS를 실행하는 디바이스의 Python 모듈 |
|
Python 스크립트의 IPv6 지원 |
|
Junos PyEZ 설명서 |
|
Python 프로그래밍 언어 설명서 |
스크립트 유형 |
설명서 |
---|---|
Junos OS 커밋, 이벤트, 운영 및 SNMP 스크립트 |
|
JET(Juniper Extension Toolkit) 스크립트 |
|
YANG 작업 및 변환 스크립트 |