Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 자동화 스크립트의 확장 기능 이해

Junos OS는 확장 기능과 명명된 템플릿을 포함한 자동화 스크립팅 도구를 제공하며 커밋, 운영, 이벤트 및 SNMP 스크립트에서 Junos OS를 실행하는 디바이스에서 스크립팅 작업을 보다 쉽게 수행할 수 있습니다. 이 라이브러리는 논리, 데이터 조작, 입력 및 출력, 유틸리티 기능을 제공하며 XPath에서 수행하기 어렵거나 불가능한 작업을 수행할 수 있도록 지원합니다. 표 1 은 주니퍼 확장 기능을 요약하고 있습니다.

확장 기능을 사용하려면 Python 자동화 스크립트가 모듈을 jcs 임포트해야 하며 SLAX 및 XSLT 스크립트는 스타일 시트 선언에 적절한 네임스페이스 URI를 선언해야 합니다. 네임스페이 jcs 스의 함수는 네임스페이스 URI http://xml.juniper.net/junos/commit-scripts/1.0 정의되고 네임스페이스의 함수 slax 는 namespace URI http://xml.libslax.org/slax 정의됩니다.

네임스페이 slax 스를 사용하는 기능은 Junos OS 릴리스 12.2부터 지원됩니다. 네임스페이스의 이전 릴리스 jcs 에 존재했던 Junos OS 독립 확장 기능을 사용하는 스크립트는 Junos OS 릴리스 12.2에서 시작하는 네임스페이스 또는 slax 네임스페이스를 사용할 jcs 수 있습니다. 그러나 이전 Junos OS 릴리스에서 이러한 기능을 사용하려면 스크립트가 네임스페이스 URI를 jcs 사용해야 합니다.

SLAX 스크립트 문은 해당 스크립트 version 에서 사용할 수 있는 기능을 결정합니다. 특정 SLAX 버전에서 도입된 기능을 사용하려면 스크립트 version 명령문의 값이 함수가 도입된 버전과 같거나 더 높아야 합니다. 예를 들어, SLAX 언어의 버전 1.1에서 도입된 기능은 "version 1.0" 명령문이 있는 SLAX 스크립트에서 사용할 수 없습니다.

참고:

SLAX 스크립트는 libslax 기본 확장 라이브러리의 추가 기능을 사용할 수도 있습니다. 자세한 내용은 libslax 기본 확장 라이브러리(bit, curl, db, os, xutil)를 참조하십시오.

Python 자동화 스크립트는 확장 기능의 하위 세트만 지원합니다. 지원되지 않는 많은 기능의 경우 표준 Python 라이브러리를 사용하여 동일한 기능을 얻을 수 있습니다.

표 1: 자동화 스크립트에서 사용하기 위한 확장 기능

함수

이름 공간

SLAX 버전

형식

설명

Python 스크립트 지원

base64-decode()

Slax

1.1

데이터 조작

BASE64 인코딩된 데이터를 디코딩하고 문자열을 반환합니다.

base64-encode()

Slax

1.1

데이터 조작

BASE64 인코딩 형식으로 일련의 데이터를 인코딩합니다.

break-lines()

jcs, slax

1.0

데이터 조작

간단한 요소를 여러 요소로 나누어 새 라인으로 구분합니다.

close()

Jcs

1.0

유틸리티

이전에 열린 연결 핸들을 닫습니다.

dampen()

jcs, slax

1.0

유틸리티

스크립트 내에서 동일한 작업이 반복적으로 실행되는 것을 방지합니다.

Y

document()

Slax

1.1

입력/출력 제어

파일 또는 URL에서 데이터를 읽고 문자열을 반환합니다.

emit_change()

유틸리티

커밋 스크립트에서 구성에 대한 영구 또는 일시적 변경을 생성합니다.

Y

emit_error()

입력/출력 제어

콘솔에서 오류 메시지를 생성합니다.

Y

emit_snmp_attributes()

입력/출력 제어

SNMP 스크립트에서 요청된 MIB 객체에 대한 정보를 반환합니다.

Y

emit_warning()

입력/출력 제어

콘솔에서 경고 메시지를 생성합니다.

Y

empty()

jcs, slax

1.0

논리

노드 집합 또는 문자열 인수를 평가하여 빈 값인지 확인합니다.

evaluate()

Slax

1.1

입력/출력 제어

SLAX 표현식을 평가하고 결과를 반환합니다.

execute()

Jcs

1.0

유틸리티

지정된 연결 핸들의 컨텍스트 내에서 원격 프로시저 호출 (RPC)을 실행합니다.

first-of()

jcs, slax

1.0

논리

목록에서 첫 번째 없음(non-null) 항목을 반환합니다. 목록의 모든 개체가 비어 있으면 기본 표현식이 반환됩니다.

get-command()

jcs, slax

1.1

입력/출력 제어

사용자에게 명령 입력을 프롬프트하고 입력을 문자열로 반환합니다.

get-hello()

Jcs

1.0

유틸리티

NETCONF 세션 동안 세션 ID와 NETCONF 서버의 기능을 반환합니다.

get-input() (XSLT/SLAX)

get_input() (Python)

jcs, slax

1.0

입력/출력 제어

CLI 프롬프트를 호출하고 사용자 입력을 기다린다. 스크립트가 대화형이 아닌 상태로 실행되면 함수는 빈 값을 반환합니다. 이 기능은 이벤트 스크립트와 함께 사용할 수 없습니다.

Y

get-protocol()

Jcs

1.0

유틸리티

연결 핸들과 연관된 세션 프로토콜을 반환합니다.

get-secret() (XSLT/SLAX)

get_secret() (Python)

jcs, slax

1.0

입력/출력 제어

CLI 프롬프트를 호출하고 사용자 입력을 기다린다. 입력이 사용자에게 다시 반향되지 않습니다.

Y

get_snmp_action()

입력/출력 제어

SNMP 스크립트에 전달된 작업 값을 검색합니다.

Y

get_snmp_oid()

입력/출력 제어

SNMP 스크립트에 전달된 OID 값을 검색합니다.

Y

hostname()

Jcs

1.0

유틸리티

DNS 서버가 장비에서 구성된 경우 지정된 IPv4 또는 IPv6 주소와 관련하여 완벽하게 검증된 도메인 이름을 반환합니다.

Y

invoke()

Jcs

1.0

유틸리티

Junos OS를 실행하는 로컬 디바이스에서 RPC를 호출합니다.

open()

Jcs

1.0

유틸리티

RPC를 실행하는 데 사용할 수 있는 연결 핸들을 반환합니다.

output()

jcs, slax

1.0

입력/출력 제어

CLI 세션으로 즉시 전송되는 형식이 지정되지 않은 출력 텍스트를 생성합니다.

Y

parse-ip()

Jcs

1.0

데이터 조작

IPv4 또는 IPv6 주소를 구문 분석하고 호스트 IP 주소, 프로토콜 제품군, 접두사 길이, 네트워크 주소 및 네트워크 마스크를 반환합니다.

Y

printf()

jcs, slax

1.0

입력/출력 제어

형식의 출력 텍스트를 생성합니다. 대부분의 표준 printf 형식은 지원되며, 일부 Junos OS 전용 형식도 지원됩니다. 이 함수는 형식화된 문자열을 반환하지만 통화에 인쇄하지는 않습니다.

Y

progress()

jcs, slax

1.0

입력/출력 제어

스크립트가 호출될 때 플래그가 지정되었다면 단일 인수가 detail 포함된 진행 상황 메시지를 CLI 세션에 즉시 발행합니다.

Y

regex()

jcs, slax

1.0

데이터 조작

지정된 문자열 인수에 대한 정규 표현식을 평가하고 일치되는 항목을 반환합니다.

set_routing_instance()

-

-

유틸리티

프로토콜 소프트웨어(TCP/UDP)를 프로그래밍하여 논데폴트 라우팅 인스턴스를 사용합니다.

Y

sleep()

jcs, slax

1.0

유틸리티

지정된 시간 동안 스크립트를 절전 모드로 전환합니다.

split()

jcs, slax

1.0

데이터 조작

일반 표현식 패턴으로 구분되는 일련의 서브스트링으로 문자열을 분할합니다.

sysctl()

jcs, slax

1.0

유틸리티

지정된 sysctl 값의 값을 문자열 또는 정수로 반환합니다.

Y

syslog()

jcs, slax

1.0

입력/출력 제어

시스템 로그 파일에 지정된 우선 순위가 지정된 메시지를 기록합니다.

Y

trace()

jcs, slax

1.0

입력/출력 제어

추적 파일로 전송되는 추적 메시지를 발행합니다.

Y