Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

YANG 구성 모델을 위한 번역 스크립트 생성

YANG 모듈을 Junos 디바이스에 로드하여 OS에서 기본적으로 지원되지는 않지만 변환을 통해 지원될 수 있는 데이터 모델을 추가할 수 있습니다. 비논의적 YANG 데이터 모델로 구성 계층을 확장할 경우, 비논의 구성 구문을 해당 Junos OS 구문에 매핑하는 로직을 제공하는 하나 이상의 변환 스크립트를 제공해야 합니다.

변환 스크립트는 비내구성 YANG 데이터 모델에 해당하는 구성 데이터를 Junos OS 구문으로 변환하고 커밋 작업 중 계산 구성에서 변환된 구성 데이터를 임시 변경으로 추가합니다. 번역 스크립트는 Python 또는 SLAX로 작성할 수 있으며 구조의 커밋 스크립트와 유사합니다. 구성에서 임시 변경을 생성하는 SLAX 및 Python 스크립트 생성에 대한 자세한 내용은 자동화 스크립팅 사용자 가이드를 참조하십시오.

또는 request system yang update 명령을 사용하여 장비의 request system yang add 새 또는 기존 YANG 패키지에 YANG 모듈과 관련 변환 스크립트를 추가합니다. 모듈 및 변환 스크립트를 장치에 추가한 후에는 해당 모듈이 추가한 데이터 모델에서 명령문과 계층을 구성할 수 있습니다. 구성 데이터를 로드하고 커밋하면 디바이스가 스크립트를 호출하여 변환을 수행하고 임시 구성 변경을 생성합니다.

이 주제는 번역 스크립트의 일반적인 구조에 대해 설명합니다. 실제 스크립트에 필요한 특정 변환 로직은 스키마에 추가된 사용자 지정 계층에 따라 달라지며 이 주제의 범위를 벗어나 있습니다.

Junos 장치에서 사용되는 변환 스크립트를 위한 프레임워크를 만들려면 다음을 수행합니다.

  1. 가장 마음에 드는 편집기에서 .slax 또는 .py 파일 확장자를 사용하는 새 파일을 만듭니다.
  2. 커밋 스크립트의 상용구와 동일하고 데이터 모델에 필요한 네임스페이스 선언도 포함하는 해당 스크립트의 언어에 필요한 상용구가 포함되어 있습니다.
    • SLAX 코드:

    • Python 코드:

    참고:

    번역 스크립트는 변환 코드에서 비논의적 YANG 데이터 모델에 대해 식별자를 완전히 검증해야 합니다.

    참고:

    커밋 스크립트 상용 코드에 대한 자세한 내용은 커밋 스크립트와 자동화 스크립팅 사용자 가이드를 위한 필수 상용구(Required Boilerplate)를 참조하십시오.

  3. 비연결 구성 데이터를 동등한 Junos OS 구문에 매핑하고 변환된 구성 데이터를 변수에 저장하는 코드를 추가합니다.
    • SLAX 샘플 코드:

    • Python 샘플 코드:

  4. 변환된 컨텐트를 SLAX 스크립트의 템플릿이나 jcs.emit_change() Python 스크립트의 함수를 호출하여 변환된 구성과 transient-change 태그를 인수로 호출 jcs:emit-change() 하여 체크아웃 구성에 임시 구성 변경으로 추가합니다.
    • SLAX 샘플 코드:

    • Python 샘플 코드:

    참고:

    또한 SLAX 스크립트에서는 템플릿을 호출하는 대신 변환된 구성을 요소 내부에 <transient-change> 내보내어 임시 변경을 생성할 jcs:emit-change() 수도 있습니다.

장비에서 YANG 패키지에 변환 스크립트를 추가하기 전에 다음 작업을 수행합니다.

  1. 번역 스크립트가 Python으로 작성된 경우, Junos OS 릴리스에 적합한 명령문 또는 language python3 명령문을 구성 language python 하여 장비가 서명되지 않은 Python 스크립트를 실행할 수 있도록 합니다.

    참고:

    Junos OS 릴리스 20.2R1 및 Junos OS Evolved Release 22.3R1부터 이 디바이스는 Python 3을 사용하여 YANG 작업 및 변환 스크립트를 실행합니다. 이전 릴리스에서 Junos OS는 Python 2.7만 사용하여 이러한 스크립트를 실행하며, Junos OS Evolved는 기본적으로 Python 2.7을 사용하여 스크립트를 실행합니다.

  2. 장비에 스크립트를 다운로드하고 구문을 선택적으로 검증합니다.

디바이스에서 변환 스크립트를 사용하기 전에 또는 request system yang update 명령을 발행하여 스크립트 및 관련 모듈을 새 또는 기존 YANG 패키지에 request system yang add 추가해야 합니다. 모듈과 스크립트가 추가되면 해당 데이터 모델에서 구성 데이터를 커밋하면 변환 스크립트가 자동으로 호출됩니다.

타사 YANG 데이터 모델(예: OpenConfig 또는 맞춤형 YANG 데이터 모델)에 해당하는 명령문을 구성하면 다음 기능이 지원 되지 않습니다 .

  • 사용 configure batch 또는 configure private 모드

  • 계층에서 명령문 [edit groups] 구성

활성 및 후보 컨피규레이션에는 이들 모델이 정의한 구문의 비논의적 YANG 데이터 모델에 대한 구성 데이터가 포함되어 있습니다. 그러나 변환된 구성 데이터는 임시 변경으로 커밋되기 때문에 활성 및 후보 컨피규레이션은 명령 또는 show configuration 명령을 실행할 show 때 Junos OS 구문에 변환된 데이터를 명시적으로 표시하지 않습니다. 구성을 볼 때 YANG 변환 스크립트를 적용하려면 필터를 | display translation-scripts 사용합니다.

변환된 데이터(임시 변경)가 명시적으로 포함된 전체 상속 후 구성을 보려면 필터를 운영 모드의 | display translation-scripts show configuration 명령이나 구성 모드의 show 명령에 추가합니다. 변환 후에 비내구성 구성 데이터만 보려면 필터를 | display translation-scripts translated-config 사용합니다.

구성 모드에서 변환 스크립트 적용 전후에 비논의 YANG 데이터 모델에 해당하는 구성 데이터에 대한 변경 사항만 표시하려면 명령어에 각각 또는 키워드를 show | display translation-scripts 추가 configured-delta translated-delta 합니다. 두 경우 모두 XML 출력은 삭제된 구성 데이터를 표시한 다음 새로운 구성 데이터를 표시합니다.

필터에 대한 | display translation-scripts 자세한 내용은 Nonnative YANG 모듈에 대한 커밋 및 디스플레이 구성 데이터를 참조하십시오.

릴리스 히스토리 테이블
릴리스
설명
22.3R1
Junos OS Evolved Release 22.3R1부터, Junos OS Evolved는 Python 3을 사용하여 YANG 작업 및 변환 스크립트를 실행합니다.
20.2R1
Junos OS 릴리스 20.2R1부터 Junos OS는 Python 3을 사용하여 YANG 작업 및 변환 스크립트를 실행합니다.