Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NETCONF Java 툴킷을 사용하여 구성 작업 수행

Device Object 메서드를 사용하여 구성 변경 내용 로드

NETCONF Java 툴킷 Device 객체에는 원격 디바이스를 구성하는 데 도움이 되는 메서드가 있습니다. 적절한 경우 메서드는 다양한 형식을 사용하도록 오버로드됩니다.

원격 디바이스에서 Device 구성 데이터를 로드하기 위해 개체에는 구성 데이터를 Junos OS 구성 모드 명령 집합, 서식이 지정된 ASCII 텍스트 또는 Junos XML 태그 요소로 정의할 수 있는 여러 메서드가 있습니다. 프로그램 코드에 구성 데이터를 제공하거나 원하는 구성 변경사항이 포함된 데이터 파일을 참조할 수 있습니다.

후보 구성의 프라이빗 복사본을 구성하려면 구성 변경 사항을 로드하기 전에 디바이스 객체에서 문자열 인수 "private"을 사용하여 메서드를 호출 openConfiguration("private") 하십시오. 이는 Junos OS CLI의 configure private 명령과 동일합니다. 메서드에 대한 openConfiguration("private") 호출을 생략하면 구성 변경 내용이 후보 구성의 전역 복사본에 로드됩니다.

구성 데이터를 로드하는 데 사용되는 방법은 데이터의 원본과 형식에 따라 다릅니다. 다음 메서드에서 문자열 인수 loadType 는 또는 replace의 값을 merge 가지며, 이는 Junos OS를 실행하는 디바이스에서 구성 모드 명령 load merge 또는 load replace 동일한 작업을 수행합니다.

  • Junos OS 구성 모드 명령 - 다음 방법은 Junos OS 구성 모드 명령 집합으로 구성 데이터를 로드합니다. 이러한 방법은 Junos OS 릴리스 11.4 이상 릴리스를 실행하는 디바이스에서만 지원됩니다. Junos OS는 구성 지침을 라인별로 실행합니다. 각 요소에 대해 명령에서 전체 문 경로를 지정하거나, CLI 구성 모드에서와 같이 탐색 명령(예: edit)을 사용하여 구성 계층을 이동할 수 있습니다.

    • loadSetConfiguration(String setCommands)- 프로그램 코드에서 구성 데이터를 메서드 인수 또는 메서드에 전달된 변수로 지정합니다.

    • loadSetFile(String filePath)- 로 지정된 파일에서 구성 데이터를 로드합니다 filePath.

  • 서식이 지정된 ASCII 텍스트 - 다음 방법은 구성 데이터를 서식이 지정된 ASCII 텍스트로 로드합니다. 표준 Junos OS CLI 표기법(줄 바꿈 문자, 탭, 공백, 중괄호, 대괄호)을 사용하여 구성 문 간의 계층적 관계를 나타냅니다.

    • loadTextConfiguration(String textConfiguration, String loadType)- 프로그램 코드에서 구성 데이터를 메서드 인수 또는 메서드에 전달된 변수로 지정합니다.

    • loadTextFile(String filePath, String loadType)- 로 지정된 파일에서 구성 데이터를 로드합니다 filePath.

  • Junos XML 태그 요소 - 다음 방법은 Junos XML 태그 요소로 구성 데이터를 로드합니다. 구성 계층의 모든 수준을 나타내는 태그 요소를 루트인 <configuration> tag 요소 아래에 새로 추가되거나 변경된 각 요소까지 포함합니다.

    • loadXMLConfiguration(String XMLConfiguration, String loadType)- 프로그램 코드의 구성 데이터를 메서드에 전달되는 객체로 net.juniper.netconf.XML 지정합니다.

    • loadXMLFile(String filePath, String loadType)- 로 지정된 파일에서 구성 데이터를 로드합니다 filePath.

다음 코드 조각은 ftp 계층 수준에서 문을 후보 구성에 병합합니다 [edit system services] . 각 유형의 로드 구성 메소드에 대한 Java문이 표시됩니다. 파일에서 로드할 때 파일에는 원하는 형식의 적절한 계층이 포함되어야 합니다.

예: 구성 로드 및 커밋을 위한 NETCONF Java 애플리케이션

다음 예제 NETCONF Java 툴킷 프로그램은 구성 계층을 구성한 다음 지정된 디바이스의 후보 구성과 병합됩니다. 그런 다음 결과 구성이 커밋됩니다. 샘플 구성 계층은 Junos OS를 실행하는 디바이스를 위한 것입니다.

요구 사항

  • Junos OS를 실행하는 라우팅, 스위칭 또는 보안 디바이스.

  • NETCONF Java 툴킷은 구성 관리 서버에 설치됩니다.

  • 클라이언트 애플리케이션은 NETCONF 서버가 상주하는 디바이스에 로그인할 수 있습니다.

  • SSH를 통한 NETCONF 서비스는 NETCONF 서버가 상주하는 디바이스에서 활성화됩니다.

개요

다음 예제에서는 Junos OS를 load merge 실행하는 디바이스에서 후보 구성을 업데이트하는 작업을 수행한 다음 새 구성을 커밋합니다. 구성에 추가될 XML 계층은 개체로 XMLBuilder 구성되고 변수에 저장됩니다 ftp_config . 또는 구성 데이터를 텍스트로 로드하고, Junos OS 릴리스 11.4 이상을 실행하는 디바이스의 경우 Junos OS 구성 모드 명령 세트로 로드할 수 있습니다.

디바이스에서 FTP 서비스를 활성화하는 새로운 구성 계층은 다음과 같습니다.

프로그램 코드는 새 Device 개체를 만들고 메서드를 호출합니다 connect() . 이는 NETCONF 서버가 실행되는 디바이스와의 SSHv2 연결 및 기본 NETCONF 세션을 설정합니다.

후보 구성을 동시에 편집할 수 있는 다른 사용자와의 충돌을 방지하기 위해 코드는 디바이스 개체의 메서드를 호출하여 lockConfig() 구성을 잠급니다. 잠금에 실패하면 메서드에서 오류 메시지가 생성되고 프로그램이 종료됩니다. 잠금에 성공 loadXMLConfiguration(ftp_config.toString(), "merge") 하면 메서드는 옵션을 사용하여 새 구성 계층을 후보 구성으로 로드합니다 merge . 구성 계층 구조는 처음에 XML로 생성되지만 메서드에 인수로 전달하기 전에 문자열로 loadXMLConfiguration() 변환해야 합니다.

새 구성 계층이 후보 구성과 병합되면 프로그램은 구성을 커밋하려고 시도합니다. 커밋 작업이 실패하면 프로그램은 관련 오류 메시지를 출력합니다. 그런 다음 프로그램은 구성을 잠금 해제하고 NETCONF 세션 및 디바이스 연결을 닫습니다.

메모:

구성 계층 및 문을 후보 구성에 로드하기 위한 및 replace 옵션에 대한 merge 자세한 내용은 CLI 사용자 가이드를 참조하십시오.

구성

Java 프로그램 만들기

단계별 절차

구성 변경 및 요청에 대한 코드가 포함된 Java 프로그램 파일을 구성하려면 다음을 수행하십시오.

  1. 파일에 설명이 포함된 이름을 지정합니다.

    파일 이름은 클래스 이름과 동일해야 합니다. 이 예제에서 파일 및 클래스의 이름은 EditConfig입니다.

  2. 파일에 코드를 추가하고 원격 호스트 IP 주소, 사용자 이름 및 암호와 같은 환경별 변수를 업데이트합니다.

    EditConfig 프로그램에 대한 전체 Java 코드가 여기에 표시됩니다.

Java 프로그램 컴파일 및 실행

단계별 절차

소스 코드를 컴파일하고 실행 가능한 프로그램을 만들려면 Java 컴파일러가 필요합니다.

구성 관리 서버에서 코드를 컴파일하고 프로그램을 실행하려면 다음을 수행합니다.

  1. EditConfig.java 파일을 컴파일합니다.

  2. EditConfig 프로그램을 실행합니다.

확인

프로그램 실행 확인

목적

EditConfig 프로그램이 올바르게 실행되는지 확인합니다.

행동

프로그램이 성공적으로 실행되면 연결이 설정되고 지정된 디바이스와 NETCONF 세션이 생성됩니다. 프로그램은 새 계층을 디바이스의 후보 구성과 병합하고 구성을 커밋합니다.

원격 디바이스에서 결과 구성을 보면서 구성이 올바르게 병합 및 커밋되었는지 확인할 수 있습니다. ftp 이제 문이 활성 구성에 있어야 합니다. Junos OS를 실행하는 디바이스에서 다음 운영 모드 명령을 입력하여 계층을 확인합니다.[edit system services]

문제 해결

오류 메시지 문제 해결

문제

다음 오류 메시지가 디스플레이에 인쇄됩니다.

용액

다른 사용자가 현재 후보 구성에 대한 잠금을 가지고 있습니다. 잠금이 해제 될 때까지 기다렸다가 프로그램을 실행하십시오.

예: 세트 구성 명령을 로드하기 위한 NETCONF Java 애플리케이션

이 NETCONF Java 툴킷 프로그램은 Junos OS 구성 모드 명령 세트를 사용하여 구성을 업데이트하는 방법을 보여줍니다 loadSetConfiguration() .

요구 사항

  • Junos OS 릴리스 11.4 이상을 실행하는 라우팅, 스위칭 또는 보안 디바이스.

  • NETCONF Java 툴킷은 구성 관리 서버에 설치됩니다.

  • 클라이언트 애플리케이션은 NETCONF 서버가 상주하는 디바이스에 로그인할 수 있습니다.

  • SSH를 통한 NETCONF 서비스는 NETCONF 서버가 상주하는 디바이스에서 활성화됩니다.

개요

Device 클래스에는 Junos OS 릴리스 11.4 이상 릴리스를 실행하는 디바이스에서 Junos OS 구성 모드 명령 세트로 구성 데이터를 로드하는 및 loadSetFile() 메서드가 포함되어 loadSetConfiguration() 있습니다. 각 구성 요소에 대해 명령에서 전체 문 경로를 지정하거나 CLI 구성 모드에서와 같이 구성 계층 주위를 이동하기 위해 탐색 명령(예edit: )을 사용할 수 있습니다. NETCONF Java 툴킷은 명령 세트를 Junos OS를 실행하는 디바이스의 NETCONF 서버가 처리할 수 있는 XML의 동등한 RPC로 변환합니다. Junos OS는 구성 지침을 라인별로 실행합니다.

메서드 구문은 다음과 같습니다.

loadSetConfiguration() 메서드는 Junos OS CLI 구성 모드에서 입력하는 구성 명령 문자열을 인수로 사용합니다. 예를 들어 계층 수준에서 문을 [edit system services] 추가하려면 ftp 명령을 사용합니다set system services ftp. 이 loadSetFile() 메서드는 구성 명령 집합이 포함된 파일의 경로를 인수로 사용합니다.

두 가지 방법을 모두 사용하여 여러 명령을 로드할 수도 있습니다. 메서드를 사용하여 loadSetConfiguration() 여러 명령을 로드하려면 명령을 단일 문자열로 나열하고 줄 바꿈 시퀀스로 \n 구분하거나 각 명령에 대해 메서드를 별도로 실행할 수 있습니다. 이 loadSetFile() 메서드를 사용하여 여러 명령을 로드하려면 파일에서 각 명령을 별도의 줄에 배치합니다.

메모:

탐색 명령과 loadSetConfiguration() 함께 메서드를 사용하는 경우 명령을 단일 문자열로 나열하고 줄 바꿈 시퀀스로 \n 구분해야 합니다. 과 같은 up단일 탐색 명령으로 메서드를 호출할 loadSetConfiguration() 수 없습니다.

이 예제의 프로그램은 Junos OS 릴리스 11.4를 실행하는 디바이스의 후보 구성에 두 개의 문을 병합하는 두 개의 구성 명령을 로드합니다. 첫 번째 명령인 set system services ftp은(는[edit system services]) 계층 수준에서 문을 추가합니다ftp. 두 번째 명령인 set interfaces ge-0/0/0 disable은(는) 계층 수준에서 문을 [edit interfaces ge-0/0/0] 추가합니다disable. 프로그램 코드의 관련 문은 다음과 같습니다.

구성

Java 프로그램 만들기

단계별 절차

Java 프로그램 파일을 구성하려면 다음을 수행합니다.

  1. 파일에 설명이 포함된 이름을 지정합니다.

    파일 이름은 클래스 이름과 동일해야 합니다. 이 예제에서 파일 및 클래스의 이름은 LoadSetConfig입니다.

  2. 파일에 코드를 추가하고 원격 호스트 IP 주소, 사용자 이름, 암호 및 <rpc-reply> 태그 요소와 같은 환경별 변수를 업데이트합니다.

    LoadSetConfig.java 프로그램에 대한 전체 Java 코드가 여기에 표시됩니다.

    파일에서 명령 집합을 로드하는 경우 명령이 포함된 파일을 만들고 두 loadSetConfiguration() 메서드 호출을 메서드 호출 loadSetFile() 로 바꿉니다.

Java 프로그램 컴파일 및 실행

단계별 절차

소스 코드를 컴파일하고 실행 가능한 프로그램을 만들려면 Java 컴파일러가 필요합니다.

구성 관리 서버에서 코드를 컴파일하고 프로그램을 실행하려면 다음을 수행합니다.

  1. LoadSetConfig.java 파일을 컴파일합니다.

  2. LoadSetConfig 프로그램을 실행합니다.

확인

프로그램이 제대로 작동하는지 확인하려면:

프로그램 실행 확인

목적

LoadSetConfig 프로그램이 올바르게 실행되는지 확인합니다.

행동

프로그램이 성공적으로 실행되면 연결을 설정하고 지정된 디바이스와 NETCONF 세션을 생성합니다. 프로그램은 새 명령문을 디바이스의 후보 구성과 병합하고 구성을 커밋합니다.

구성 변경 사항 확인

목적

원격 디바이스에서 결과 구성을 보면서 구성이 올바르게 병합 및 커밋되었는지 확인할 수 있습니다. ftp 이제 및 문이 disable 활성 구성에 있어야 합니다. Junos OS를 실행하는 디바이스에서 다음 운영 모드 명령을 실행하여 및 [edit interfaces] 계층 수준을 확인합니다.[edit system services]

행동

커밋 확인

목적

또한 커밋 로그를 검토하여 커밋이 성공했는지 확인할 수 있습니다. Junos OS를 실행하는 디바이스에서 운영 모드 명령을 실행하여 show system commit 커밋 로그를 확인합니다. 이 예에서 로그는 사용자가 admin 주어진 날짜와 시간에 NETCONF 세션에서 후보 구성을 커밋했음을 확인합니다.

행동

운영 모드 명령을 show system commit 실행하고 커밋 로그를 검토합니다.