Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZ를 사용하여 Junos 디바이스에서 사실 검색

Junos PyEZ 디바이스의 사실 이해

Junos PyEZ는 Python을 위한 마이크로프레임워크로, Junos 디바이스를 관리하고 자동화할 수 있습니다. Junos PyEZ는 각 디바이스를 클래스 인스턴스로 모델합니다 jnpr.junos.device.Device . Junos 디바이스에 연결한 후 Junos PyEZ 애플리케이션은 장치에 대한 사실을 검색할 수 있습니다. 디바이스 팩트(facts)는 객체의 속성으로 facts 액세스됩니다 Device . 반환된 장비 사실에 포함된 키에 대한 자세한 내용은 jnpr.junos.facts를 참조하십시오.

다음 예제에서는 장비와 함께 SSH를 통해 NETCONF 세션을 설정하고 디바이스 사실을 인쇄합니다. 이 장치는 SSH 키를 사용하여 사용자를 인증합니다.

Junos PyEZ Release 2.0.0 및 이전 릴리스에서 애플리케이션이 장치에 연결하는 방법을 호출 Device open() 할 때 Junos PyEZ는 NETCONF-over-SSH 연결에 대한 디바이스 현황을 자동으로 수집하고 인수 목록에 명시적으로 포함 gather_facts=True Device 할 때 Telnet 및 시리얼 콘솔 연결에 대한 장비 팩트를 수집합니다.

Junos PyEZ 릴리스 2.1.0부터 모든 연결 유형에 대한 디바이스 사실이 온디맨드 방식으로 수집됩니다. 애플리케이션이 처음으로 애플리케이션의 가치 또는 종속 사실의 가치에 액세스할 때 각 사실이 수집되고 캐시됩니다. 인쇄하거나 디바이스 사실을 사용할 때 이전에 액세스한 사실은 캐시에서 제공되며 아직 액세스되지 않은 사실은 장치에서 검색됩니다. 특정 플랫폼에서 사실이 지원되지 않거나 애플리케이션이 특정 사실의 가치를 수집하는 문제에 직면하는 경우 해당 사실의 가치는 입니다 None.

Junos PyEZ는 장비가 처음 팩트 또는 종속적 사실에 액세스할 때 팩트(fact)를 캐싱하지만 후속 액세스 시 캐시된 값을 업데이트하지는 않습니다. 디바이스의 사실을 새로 고치려면 이 방법을 호출하십시오 facts_refresh() . 이 facts_refresh() 방법은 모든 사실의 캐시를 비워 줍니다. 따라서 다음 애플리케이션이 팩트 액세스 시 장치에서 해당 애플리케이션을 검색하고 캐시에 현재 값을 저장합니다.

단일 사실 또는 일련의 사실만 새로 고치려면, 메소드에 인수를 keys 포함시키고 캐시에서 facts_refresh() 지우는 키를 지정합니다. 예를 들어:

참고:

Junos PyEZ 릴리스 2.0.0부터 시작하여 사실을 수집할 때 발생하는 예외는 오류가 아닌 경고를 발생시키는 것으로 스크립트가 계속 실행되도록 합니다.

기본적으로 Junos PyEZ는 디바이스 팩트(facts)를 딕셔니와 유사한 개체로 반환합니다. Junos PyEZ 릴리스 2.2.1부터 JSON(JavaScript Object Notation)에서 장비 팩트를 볼 수 있습니다. 사실에 대한 JSON 표현을 보려면 모듈을 json 가져오고 함수를 호출합니다 json.dumps() .

예: Junos 디바이스에서 사실 검색

Junos PyEZ를 사용하면 Python 대화형 모드에서 명령을 빠르게 실행하거나 작업을 수행하는 프로그램을 만들 수 있습니다. 다음 예에서는 Junos 디바이스로 SSH를 통해 NETCONF 세션을 설정하고 간단한 Python 프로그램과 Python 대화형 모드를 모두 사용하여 디바이스에 대한 사실 정보를 검색하고 인쇄합니다. 이 예는 인증을 위해 기존 SSH 키를 사용합니다.

Junos 장비로 SSH를 통해 NETCONF 세션을 설정하고 디바이스 팩트를 인쇄하는 Junos PyEZ 애플리케이션을 생성하려면 다음을 수행합니다.

  1. 좋아하는 편집기에서 .py 파일 확장자를 사용하는 설명이 있는 새 파일을 만듭니다.
  2. Device 클래스 및 작업에 필요한 다른 모듈 또는 객체를 임포트합니다.
  3. 디바이스 인스턴스를 생성하고 호스트 이름, 인증에 필요한 매개 변수 및 옵션 매개변수를 제공합니다.
  4. 메소드를 호출하여 디바이스에 연결합니다 open() .
  5. 디바이스 사실을 인쇄하십시오.
    팁:

    디바이스의 사실을 새로 고치려면, 예를 들어 이 방법을 호출 facts_refresh() 합니다 dev.facts_refresh(). .

  6. 디바이스 연결을 닫습니다.
  7. 프로그램을 저장하고 실행합니다.

전체 프로그램은 다음과 같이 제공됩니다.

Python 대화형 모드에서도 동일한 작업을 빠르게 수행할 수 있습니다.

다음 비디오는 Junos PyEZ를 사용하여 Junos 디바이스에서 사실을 연결하고 검색하는 방법을 설명하는 짧은 Python 세션을 보여줍니다.

릴리스 히스토리 테이블
릴리스
설명
2.1.0
Junos PyEZ 릴리스 2.1.0부터 모든 연결 유형에 대한 디바이스 사실이 온디맨드 방식으로 수집됩니다.
2.0.0
Junos PyEZ 릴리스 2.0.0부터 시작하여 사실을 수집할 때 발생하는 예외는 오류가 아닌 경고를 발생시키는 것으로 스크립트가 계속 실행되도록 합니다.