Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

예: Python Op 스크립트를 사용하여 구성 변경

운영 스크립트를 사용하면 Junos OS 구성을 제어하여 변경할 수 있습니다. 운영 스크립트는 장치에 대한 운영 정보를 수집하고 해당 정보를 기반으로 구성을 업데이트할 수 있기 때문에 유용합니다. Junos OS에 익숙한 숙련된 사용자는 관련 구성 정보를 프롬프트하는 운영 스크립트를 작성하고 그에 따라 구성을 수정할 수 있습니다. 따라서 Junos OS에 대한 경험이 적은 사용자는 스크립트를 사용하여 구성을 안전하게 수정할 수 있습니다. 이 예에서는 Junos PyEZ API를 활용하는 Python 운영 스크립트 를 사용하여 Junos OS 구성을 변경하는 방법을 보여 줍니다.

요구 사항

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

  • Junos OS 릴리스 16.1R3 이상에서 Python 확장 패키지를 실행하는 MX 시리즈 라우터입니다.

개요 및 운영 스크립트

Python 운영 스크립트는 Junos PyEZ jnpr.junos.utils.config.Config 유틸리티를 사용하여 Junos OS 구성을 변경할 수 있습니다. Junos PyEZ Config 유틸리티는 구성을 잠그고 구성 데이터를 로드하며 구성에 통합하고 구성을 커밋하며 구성의 잠금을 해제하는 방법을 지정하는 인스턴스 방법을 제공합니다. Junos PyEZ를 사용하여 Junos 디바이스를 구성하는 것에 대한 자세한 내용은 Junos PyEZ를 사용하여 Junos 디바이스를 구성하는 것을 참조하십시오. 이 예제의 Python op 스크립트는 로컬 디바이스에서 인터페이스를 사용하지 않도록 설정하기 위해 구성을 업데이트하는 방법을 보여줍니다.

Python op 스크립트는 다음을 임포트합니다.

  • Device 클래스—Junos 디바이스에 대한 연결을 처리합니다.

  • Config 클래스—대상 장비에서 구성 모드 명령을 수행합니다.

  • jnpr.junos.exception 모듈—Junos 디바이스 관리 시 발생하는 예외 포함

  • jcs 모듈—스크립트가 지원되는 확장 기능을 실행할 수 있도록 지원

이 예에서는 변수가 usage 스크립트의 기능에 대한 일반적인 설명과 함께 초기화됩니다. 스크립트가 실행되면 스크립트는 CLI에 사용량 설명을 출력하여 사용자가 해당 스크립트의 목적을 검증할 수 있도록 합니다.

이 스크립트는 확장 기능을 호출 jcs.get_input() 하여 사용자가 인터페이스의 이름을 입력하지 않도록 표시하고 변수에 interface 인터페이스 이름을 저장합니다. 변수는 config_xml 구성 변경을 정의하는 XML 문자열입니다.

스크립트는 인스턴스 open() 를 생성할 때 호스트 매개 변수를 Device 제공하지 않기 때문에 이 방법은 로컬 디바이스와의 연결을 설정합니다. 이 예에서는 컨텍스트 관리자 mode='exclusive' 를 사용하여 구성이 수정되는 동안 구성에 대한 독점 잠금을 획득함으로써 인스턴스를 만듭니다Config. 이 모드에서 컨텍스트 관리자는 자동으로 후보 구성의 잠금 및 잠금 해제를 처리합니다. Config 유틸리티 방법은 지원자 구성에 구성 변경을 작동으로 load merge 로드하고 구성을 커밋합니다. 이 dev.close() 방법은 연결을 닫습니다.

Python 스크립트

구성

단계별 절차

스크립트를 다운로드, 활성화, 테스트하려면 다음을 수행합니다.

  1. 스크립트를 텍스트 파일에 복사하고 파일 config-change.py 이름을 지정한 다음 장비의 /var/db/scripts/op/ directory에 복사합니다.

    참고:

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

  2. 구성 모드에서는 계층 수준에서 명령문을 [edit system scripts op] 포함합니다file config-change.py.

  3. 디바이스에서 서명되지 않은 Python 스크립트 실행을 활성화합니다.

    참고:

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

  4. commit and-quit 명령을 실행하여 구성을 커밋하고 운영 모드로 돌아갑니다.

  5. 스크립트를 실행하기 전에 운영 모드 명령을 발행 show interfaces interface-name 하고 스크립트에 의해 비활성화될 인터페이스의 현재 상태를 기록합니다.

  6. 운영 모드 명령을 실행하여 운영 스크립트를 op config-change.py 실행합니다.

확인

커밋 확인

목적

커밋이 성공했는지 확인합니다.

작업

구성 변경 및 커밋과 관련된 경고 또는 오류를 포착하는 코드를 스크립트에 포함시켜야 합니다. 이를 통해 커밋의 성공 여부를 보다 쉽게 판단할 수 있습니다. 경고 또는 오류 메시지가 없는 경우 여러 가지 방법으로 커밋의 성공을 확인할 수 있습니다.

  • 커밋 로그를 확인하여 커밋에 성공했는지 확인합니다.

  • syslog 메시지 파일을 검사하여 커밋 작업이 로깅되었는지 확인합니다. 이 경우 비활성화된 인터페이스에 SNMP_TRAP_LINK_DOWN 대한 메시지도 표시됩니다. 추적을 위한 구성 설정에 따라 이 메시지가 로그 파일에 나타날 수도 있고 없을 수도 있습니다.

구성 변경 확인

목적

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

작업

  • 구성을 표시하고 변경 사항이 지정된 인터페이스에 대해 표시되는지 확인합니다.

  • 이 예에서는 운영 모드 명령을 실행하여 인터페이스가 show interfaces interface-name 비활성화 됐는지 확인할 수도 있습니다. 이 경우 인터페이스를 사용하지 않도록 설정 하기 전에 캡처한 출력은 인터페이스 Enabled가 임을 보여줍니다.

    인터페이스를 비활성화하기 위해 스크립트를 실행 한 후 캡처한 출력은 인터페이스가 지금 Administratively down있음을 보여줍니다.