Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Salt를 사용하여 Junos OS 실행 디바이스에서 RPC 실행

주니퍼 네트웍스는 Salt를 사용하여 Junos OS를 실행하는 디바이스를 관리할 수 있도록 지원하며, Junos 실행 및 상태 모듈(Salt용)은 매니지드 디바이스에서 운영 및 구성 작업을 수행할 수 있는 기능을 정의합니다. salt.modules.junos.rpc 실행 기능 및 salt.states.junos.rpc 상태 함수를 사용하면 Junos OS를 실행하는 디바이스에서 RPC(원격 프로시저 호출)를 실행하여 작업을 수행하거나 정보를 검색할 수 있습니다.

다음 섹션에서는 함수를 사용하고, 디바이스 응답을 구문 분석하고, 출력 형식을 지정하고, 출력을 파일에 저장하는 방법에 대해 설명합니다.

Junos XML API 이해

Junos XML API는 Junos OS 구성 명령문 및 운영 모드 명령의 XML 표현입니다. 이는 Junos OS 구성 계층의 모든 문과 CLI 운영 모드에서 실행하는 많은 명령에 해당하는 XML을 정의합니다. Junos XML에 대응하는 각 운영 모드 명령은 요청 태그 요소에 매핑되며, 필요한 경우 응답 태그 요소에 매핑됩니다. 요청 태그는 NETCONF 또는 Junos XML 프로토콜 세션 내의 RPC(Remote Procedure Call)에서 사용되어 Junos OS를 실행하는 디바이스에서 정보를 요청합니다. 서버는 응답 태그 요소 내에 포함된 Junos XML 요소를 사용하여 응답을 반환합니다.

Junos XML 대응물이 있는 모든 운영 명령은 Junos XML API 탐색에 나열되어 있습니다. 명령 뒤에 옵션을 추가하여 CLI | display xml rpc 에 Junos XML 대응 항목이 있는 모든 운영 모드 명령에 대해 Junos XML 요청 태그 요소를 표시할 수도 있습니다. 다음 예제에서는 명령에 대한 show route 요청 태그를 표시합니다.

Salt를 사용하여 Junos OS를 실행하는 디바이스를 관리하는 경우 함수를 사용하여 junos.rpc 디바이스에서 RPC를 실행하고 응답을 반환할 수 있습니다.

junos.rpc 함수 구문

실행 함수 구문은 salt.modules.junos.rpc 다음과 같습니다.

state salt.states.junos.rpc 함수는 다음 구문을 지원합니다.

어디:

  • arg=arg-value- (선택 사항) 포함할 하나 이상의 RPC 인수와 해당 값(예: interface-name=ge-1/1/1 또는 terse=True)입니다.

  • dest- (선택 사항) RPC 응답이 기록되는 프록시 미니언 서버의 대상 파일 경로입니다. 대상 장치에서 절대 경로를 지정하지 않으면 해당 경로는 최상위 루트(/) 디렉토리를 기준으로 합니다.

  • id- 상태 선언에 대한 사용자 정의 식별자입니다.

  • format- (선택 사항) 지정된 경우 대상 파일에 기록된 RPC 응답 형식입니다. , xml또는 을(를json) 지정합니다text.

  • rpc- Junos OS를 실행하는 디바이스에서 실행할 원격 프로시저 호출(예: get-system-uptime-information).

junos.rpc 실행 함수로 RPC를 실행하는 방법

salt.modules.junos.rpc 실행 함수를 사용하면 Junos OS를 실행하는 디바이스에서 RPC를 실행할 수 있습니다. 이 함수에는 실행할 RPC인 하나의 인수가 필요합니다. 작업이 성공하면 명령은 을(를) 반환out: True하고 키에는 rpc_reply RPC 응답이 포함됩니다.

예를 들어, 다음 명령은 대상 디바이스에서 RPC를 get-system-uptime-information 실행하고 표준 출력에 응답을 표시합니다.

RPC 인수 또는 함수의 출력 형식 및 위치를 지정하는 방법에 대한 자세한 내용은 다음을 참조하세요.

junos.rpc 상태 함수를 사용하여 RPC를 실행하는 방법

Salt 상태 파일 내의 state 함수를 사용하여 salt.states.junos.rpc Junos OS를 실행하는 디바이스에서 RPC를 실행할 수 있습니다. RPC를 데이터 구조의 첫 번째 줄로 정의하거나 함수의 인수 목록 내에서 정의할 수 있습니다. 동일한 상태 파일 내에서 동일한 RPC를 여러 번 실행해야 하는 경우 인수 목록 내에서 RPC를 정의해야 합니다.

다음 상태 파일은 state 함수를 사용하여 junos.rpc 대상 디바이스에서 두 개의 RPC를 실행하고 출력을 파일에 저장합니다. 이 경우 조직에 저장된 id 프록시 식별자가 대상 파일 이름에 포함되어 상태가 여러 대상에 적용될 때 출력 파일을 구별합니다.

상태를 적용하면 Salt 마스터는 각 RPC에 대한 RPC 응답을 표준 출력으로 표시하고 프록시 미니언 서버의 해당 대상 파일에도 출력을 저장합니다.

상태가 여러 대상에 적용되는 경우 정의된 파일 이름이 고유 식별자를 참조하기 때문에 이 경우 Salt는 프록시 미니언 서버의 각 대상에 대해 서로 다른 출력 파일을 생성합니다.

상태 파일은 파일에서 동일한 상태 식별자를 여러 번 사용할 수 없습니다. 따라서 상태 파일에서 동일한 RPC 요청 태그를 여러 번 사용하려면 함수의 인수 목록에서 RPC를 정의해야 합니다. 예를 들어:

RPC 인수를 지정하는 방법

junos.rpc 함수는 RPC에 대한 키워드 인수 및 값 지정을 지원합니다. 인수가 값을 취하는 경우 인수 이름을 포함하고 값을 지정합니다. 인수에 값이 필요하지 않은 경우 해당 값을 로 True설정합니다.

예를 들어 다음 RPC에는 두 개의 인수가 포함되어 있으며 그 중 하나는 값을 사용합니다.

Salt 마스터 명령줄에서 동등한 RPC를 실행하려면 및 terse=True 인수를 interface-name='ge-1/1/1' 포함합니다.

마찬가지로 Salt 상태 파일에서도 다음을 수행합니다.

메모:

하이픈으로 연결된 요소 이름을 사용하거나 하이픈 대신 밑줄을 사용하여 Junos OS 인수를 지정할 수 있습니다.

Salt 마스터 명령줄에서 명령을 실행하면 Salt는 CLI 입력을 전달 PyYAML 하여 적절한 Python 데이터 형식으로 로드되도록 합니다. 경우에 따라 정수를 사용하거나 정수로 구문 분석되는 문자열 값을 사용하는 인수가 올바르게 구문 분석되지 않을 수 있습니다. 이러한 인수의 경우 다음 방법 중 하나를 사용하여 값을 제공할 수 있습니다.

  • 백슬래시(\)를 사용하여 문자열 값 주위의 따옴표를 이스케이프합니다.

  • 큰따옴표를 사용하여 작은따옴표를 묶거나 그 반대의 경우도 마찬가지입니다.

  • --no-parse=param_name 옵션을 포함합니다.

예를 들어:

RPC 출력을 파일에 저장하는 방법

함수를 실행할 junos.rpc 때 인수를 포함 dest 하고 대상 파일의 경로를 지정하여 프록시 미니언 서버의 파일에 반환된 데이터를 저장할 수 있습니다. 절대 경로를 지정하지 않으면 해당 경로는 최상위 루트(/) 디렉터리를 기준으로 합니다. 대상 이름을 가진 출력 파일이 이미 있는 경우 새 파일이 이전 파일을 덮어씁니다.

인수는 dest 전체 Salt 명령 응답을 파일에 저장하지 않습니다. 키 내에 rpc_reply 포함된 RPC 회신만 저장합니다.

다음 명령은 RPC의 get-system-uptime-information 출력을 표시하고 프록시 미니언 서버의 지정된 경로에 값을 저장합니다 rpc_reply .

RPC 출력의 형식을 지정하는 방법

기본적으로 junos.rpc 함수는 표준 출력에 표시된 데이터와 대상 파일에 저장된 데이터(지정된 경우) 모두에 대해 XML 형식의 RPC 출력을 반환합니다. 다른 출력 형식을 지정하려면 인수를 format 포함시키고 값을 원하는 형식과 동일하게 설정하십시오. 텍스트 형식 또는 Junos XML 요소를 요청하려면 각각 또는 을(를xml) 사용합니다text. 출력을 대상 파일에 JSON 형식으로 저장 junos.rpc 하려면 을 지정합니다json.

다음 명령은 RPC를 get-system-uptime-information 실행하고 데이터를 텍스트 형식으로 반환합니다.

출력은 프록시 미니언 서버의 대상 파일에도 요청된 형식으로 기록됩니다.