Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

예: 커밋 스크립트를 사용하여 영구 및 임시 구성 변경 생성

예: 지속적인 변화 생성

Junos OS 커밋 스크립트를 사용하면 커밋 프로세스 중에 자신의 관행과 정책에 따라 구성 확인 프로세스를 사용자 정의하고 사용자 지정 구성 규칙을 적용할 수 있습니다. 이 예는 명령문이 구성에 이미 포함되지 않은 경우 SONET/SDH 인터페이스 구성에 문을 추가하는 family mpls 영구 변경을 생성하는 커밋 스크립트를 보여줍니다. 인터페이스에서 MPLS 프로토콜 체계를 명시적으로 구성하지 않으면 MPLS 애플리케이션에 대해 인터페이스가 활성화되지 않습니다.

요구 사항

이 예는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 사용합니다.

  • 하나 이상의 SONET/SDH 인터페이스를 통해 Junos OS 실행하는 디바이스입니다.

  • Python 스크립트를 사용할 때 릴리스 16.1R3 이상에서 Junos OS.

개요 및 커밋 스크립트

이 예의 커밋 스크립트는 논리적 인터페이스가 구성되었지만 명령문이 구성되지 않은 모든 SONET/SDH 인터페이스를 family mpls 찾습니다. 이러한 인터페이스의 경우, 스크립트는 family mpls 계층 수준에서 지속적인 변경으로 인터페이스 구성에 [edit interfaces interface-name unit logical-unit-number] 문을 추가합니다. 스크립트는 SLAX, XSLT 및 Python에 표시됩니다.

커밋 스크립트의 SLAX 및 XSLT 버전은 junos.xsl 가져오기 파일에 포함된 도우미 템플릿인 템플릿을 사용하여 jcs:emit-change 지속적인 변경을 생성합니다. 템플릿의 jcs:emit-change 매개변수는 tag 생략되어 스크립트가 지속적인 변화로 변경을 내보낸다. 템플릿의 jcs:emit-change 매개 변수에는 content 영구 변경으로 추가할 구성 문이 포함됩니다. 템플릿의 jcs:emit-change 매개 변수에는 message CLI에 표시될 경고 메시지가 포함되어 구성이 변경되었음을 알려줍니다.

Python 버전의 커밋 스크립트는 모듈에서 jcs 가져온 함수를 jcs.emit_change() 사용하여 영구 변경을 생성합니다. Python 스크립트는 위치 인수 '변경'을 전달하여 지속적인 변경임을 나타냅니다.

XSLT 구문

SLAX 구문

Python 구문

구성

절차

단계별 절차

스크립트를 다운로드, 활성화, 테스트하기 위해 사용할 수 있습니다.

  1. 스크립트를 텍스트 파일로 복사하여 mpls.xsl, mpls.slax 또는 mpls.py 적절한 경우 이름을 지정하고 디바이스의 /var/db/scripts/commit/ directory로 복사합니다.

    참고:

    서명되지 않은 Python 스크립트는 Junos OS super-user 로그인 클래스의 루트 또는 사용자가 소유해야 하며 파일 소유자만 파일에 대한 쓰기 권한을 가질 수 있습니다.

  2. 구성 모드에서 문 및 스크립트 파일 이름을 [edit system scripts commit] 계층 수준에서 구성 file 합니다.

  3. 스크립트가 Python으로 작성된 경우 부호 없는 Python 스크립트를 실행하도록 합니다.

    참고:

    language python3 Python 3을 사용하여 Python 스크립트를 실행하도록 명령문을 구성하거나 Python 2.7을 사용하여 Python 스크립트를 실행하도록 명령문을 구성 language python 합니다. 자세한 내용은 언어를 참조하십시오.

  4. 커밋 스크립트가 영구 변경을 올바르게 생성하는지 테스트하려면 구성에 변경을 유도하는 조건이 포함되어 있는지 확인합니다. 이 스크립트를 family mpls 테스트하려면 적어도 하나의 SONET/SDH 인터페이스에 대해 문이 계층 수준에 포함되지 [edit interfaces so-fpc/pic/port unit logical-unit-number] 않도록 해야 합니다.

  5. commit check 명령을 실행하여 커밋 스크립트 처리 추적을 미리 확인하여 스크립트가 후보 구성에 영구 변경을 추가할 수 있는지 확인합니다. 명령은 commit check 커밋 전에 구성 구문을 확인하지만 변경 사항을 커밋하지는 않습니다.

    이 예의 커밋 스크립트는 변경이 발생할 때마다 메시지를 생성합니다. commit check 명령을 사용하여 이러한 메시지를 미리 보기를 통해 스크립트가 적절한 인터페이스에 대한 문으로 구성을 family mpls 업데이트할지 여부를 결정합니다.

    commit check | display xml 명령을 실행하여 XML 형식의 메시지 버전을 표시합니다. 샘플 출력은 스크립트가 커밋 작업 중에 so-2/3/4.0 인터페이스 구성에 문을 추가할 family mpls 것임을 나타냅니다.

  6. 커밋 스크립트 처리에 대한 자세한 추적을 표시하려면 명령을 실행합니다 commit check | display detail . 샘플 출력에서는 커밋 작업 중에 구성에 로드되는 한 가지 영구 변경이 있습니다.

  7. 스크립트가 올바른 변경 사항을 생성하는지 확인한 후 명령을 실행 commit 하여 커밋 작업을 시작하고 스크립트를 실행합니다.

확인

구성 확인

목적

올바른 변경 사항이 구성에 통합되는지 확인합니다.

작업

커밋 작업을 실행한 후 구성 모드 명령을 실행하여 구성을 show interfaces 확인합니다. 스크립트가 실행되기 전에 하나 이상의 SONET/SDH 인터페이스에서 MPLS 프로토콜 체계가 활성화되지 않은 경우 출력은 다음과 유사합니다.

예: 임시 변경 생성

이 예는 커밋 스크립트를 사용하여 IPv4 프로토콜 체계가 활성화된 모든 SONET/SDH 인터페이스에서 PPP 캡슐화를 설정합니다. 변경 사항은 임시 변경으로 추가됩니다.

요구 사항

이 예는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 사용합니다.

  • 하나 이상의 SONET/SDH 인터페이스를 통해 Junos OS 실행하는 디바이스입니다.

  • Python 스크립트를 사용할 때 릴리스 16.1R3 이상에서 Junos OS.

개요 및 커밋 스크립트

이 예의 커밋 스크립트는 구성에서 활성화된 IPv4 프로토콜 체계가 있는 모든 SONET/SDH 인터페이스를 찾아 인터페이스 구성에 문을 추가합니다 encapsulation ppp . 커밋 스크립트는 임시 변경을 생성하여 체크아웃 구성에 변경 사항을 추가하지만 후보 구성은 추가하지 않습니다. 스크립트는 SLAX, XSLT 및 Python에 표시됩니다.

커밋 스크립트의 SLAX 및 XSLT 버전은 junos.xsl 가져오기 파일에 포함된 도우미 템플릿인 템플릿을 사용하여 jcs:emit-change 임시 변경을 생성합니다. tag 템플릿의 jcs:emit-change 매개변수에는 스크립트가 지속적인 변경이 아닌 임시 변경으로 변경을 내보하도록 지시하는 값transient-change이 있습니다. 템플릿의 jcs:emit-change 매개 변수에는 content 임시 변경으로 추가할 구성 문이 포함됩니다.

Python 버전의 커밋 스크립트는 모듈에서 jcs 가져온 함수를 jcs.emit_change() 사용하여 일시적 변경을 생성합니다. Python 스크립트는 위치 인수 '임시 변경'을 통과하여 임시 변경임을 나타냅니다.

XSLT 구문

SLAX 구문

Python 구문

구성

절차

단계별 절차

스크립트를 다운로드, 활성화, 테스트하기 위해 사용할 수 있습니다.

  1. 스크립트를 텍스트 파일로 복사하여 파일 의 이름을 encap-ppp.xsl, encap-ppp.slax 또는 encap-ppp.py 적절하게 지정하고 디바이스의 /var/db/scripts/commit/ directory로 복사합니다.

    참고:

    서명되지 않은 Python 스크립트는 Junos OS super-user 로그인 클래스의 루트 또는 사용자가 소유해야 하며 파일 소유자만 파일에 대한 쓰기 권한을 가질 수 있습니다.

  2. 구성 모드에서 문 및 스크립트 파일 이름을 [edit system scripts commit] 계층 수준에서 구성 file 합니다.

  3. allow-transients 명령문을 구성하여 커밋 스크립트가 체크아웃 구성에 임시 변경을 로드할 수 있도록 합니다.

  4. 스크립트가 Python으로 작성된 경우 부호 없는 Python 스크립트를 실행하도록 합니다.

    참고:

    language python3 Python 3을 사용하여 Python 스크립트를 실행하도록 명령문을 구성하거나 Python 2.7을 사용하여 Python 스크립트를 실행하도록 명령문을 구성 language python 합니다. 자세한 내용은 언어를 참조하십시오.

  5. 커밋 스크립트가 임시 변경을 올바르게 생성하는지 테스트하려면 구성에 변경을 유도하는 조건이 포함되어 있는지 확인합니다. encapsulation ppp 적어도 하나의 SONET/SDH 인터페이스에 [edit interfaces so-fpc/pic/port] 대해 문이 계층 수준에 포함되지 않도록 합니다.

  6. commit check 명령을 실행하여 커밋 스크립트 처리 추적을 미리 확인하여 스크립트가 체크아웃 구성에 임시 변경을 추가할지 확인합니다. 명령은 commit check 커밋 전에 구성 구문을 확인하지만 변경 사항을 커밋하지는 않습니다.

    commit check | display detail 명령을 실행하여 커밋 스크립트 처리에 대한 자세한 추적을 표시합니다. 샘플 출력에는 체크아웃 구성에 로드된 두 가지 임시 변경 사항이 있습니다.

  7. 스크립트가 올바른 변경 사항을 생성하는지 확인한 후 명령을 실행 commit 하여 커밋 작업을 시작하고 스크립트를 실행합니다.

확인

구성 확인

목적

올바른 변경 사항이 체크아웃 구성에 통합되는지 확인합니다. IPv4 프로토콜 체계가 활성화된 하나 이상의 SONET/SDH 인터페이스가 있는 경우, 인터페이스 계층에 임시 변경으로 문이 추가된 것을 보아야 encapsulation ppp 합니다.

작업

임시 변경으로 구성을 보려면 구성 모드 명령을 실행합니다 show interfaces | display commit-scripts . show interfaces | display commit-scripts 명령은 임시 변경에 의해 생성된 문을 포함하여 구성에 있는 모든 문을 표시합니다. IPv4 프로토콜 체계가 활성화된 하나 이상의 SONET/SDH 인터페이스가 있는 경우 출력은 다음과 유사합니다.

문제 해결

커밋 오류 문제 해결

문제

CLI는 잘못된 임시 변경 오류를 생성하고 커밋이 실패합니다.

솔루션

커밋 스크립트가 allow-transients 임시 변경을 체크아웃 구성에 로드할 수 있도록 계층 수준에서 문을 [edit system scripts commit] 구성해야 합니다.

임시 변경을 허용하도록 다음 문을 구성합니다.