- play_arrow 개요
- play_arrow Junos 자동화 스크립트 개요
- play_arrow Junos XML 관리 프로토콜 및 Junos XML API 개요
-
- play_arrow SLAX를 사용한 자동화 스크립팅
- play_arrow SLAX 개요
- play_arrow SLAX 문
- append
- apply-imports
- apply-templates
- attribute
- attribute-set
- call
- copy-node
- copy-of
- decimal-format
- element
- else
- else if
- expr
- fallback
- for
- for-each
- function
- if
- import
- key
- match
- message
- mode
- mvar
- number
- output-method
- param
- preserve-space
- priority
- processing-instruction
- result
- set
- sort
- strip-space
- template
- terminate
- trace
- uexpr
- use-attribute-sets
- var
- version
- while
- with
- play_arrow 자동화 스크립팅을 위한 libslax 배포판
-
- play_arrow Python을 사용한 자동화 스크립팅
- play_arrow Python 개요
- Junos 디바이스용 Python 자동화 스크립트 이해
- Junos 디바이스에서 Python 자동화 스크립트를 실행하기 위한 요구 사항
- Junos 디바이스의 Python 모듈 개요
- Junos OS를 실행하는 디바이스에서 Python 대화형 모드를 사용하는 방법
- psutil 모듈을 사용하여 Junos OS를 실행하는 디바이스에서 프로세스 및 시스템 정보를 검색하는 방법
- Junos OS를 실행하는 디바이스에서 Python용 요청 라이브러리를 사용하는 방법
- Python 자동화 스크립트의 IPv6 지원
- Junos OS Evolved를 실행하는 디바이스의 Python 3 애플리케이션에서 라우팅 인스턴스를 지정하는 방법
-
- play_arrow 자동화 스크립트 입력
- play_arrow 자동화 스크립트의 전역 매개 변수
-
- play_arrow 자동화 스크립트에 대한 확장 기능 및 명명된 템플릿
- play_arrow 자동화 스크립팅을 위한 확장 함수
- play_arrow jcs 및 slax 네임스페이스의 확장 함수
- base64-decode() Function (SLAX)
- base64-encode() Function (SLAX)
- break-lines() Function (SLAX and XSLT)
- close() Function (SLAX and XSLT)
- dampen() Function (Python, SLAX, and XSLT)
- document() Function (SLAX)
- emit_error() Function (Python)
- emit_snmp_attributes Function (Python)
- emit_warning() Function (Python)
- empty() Function (SLAX and XSLT)
- evaluate() Function (SLAX)
- execute() Function (SLAX and XSLT)
- first-of() Function (SLAX and XSLT)
- get-command() Function (SLAX)
- get-hello() Function (SLAX and XSLT)
- get-input() Function (SLAX and XSLT) and get_input() (Python)
- get-protocol() Function (SLAX and XSLT)
- get-secret() Function (SLAX and XSLT) and get_secret() (Python)
- get_snmp_action() Function (Python)
- get_snmp_oid() Function (Python)
- hostname() Function (Python, SLAX, and XSLT)
- invoke() Function (SLAX and XSLT)
- open() Function (SLAX and XSLT)
- output() Function (Python, SLAX, and XSLT)
- parse-ip() Function (SLAX and XSLT) and parse_ip() (Python)
- printf() Function (Python, SLAX, and XSLT)
- progress() Function (Python, SLAX, and XSLT)
- regex() Function (SLAX and XSLT)
- set_routing_instance() Function (Python)
- sleep() Function (SLAX and XSLT)
- split() Function (SLAX and XSLT)
- sysctl() Function (Python, SLAX, and XSLT)
- syslog() Function (Python, SLAX, and XSLT)
- trace() Function (Python, SLAX, and XSLT)
- play_arrow 자동화 스크립팅을 위한 명명된 템플릿
- play_arrow jcs 네임스페이스의 명명된 템플릿
-
- play_arrow 자동화 스크립트 관리
- play_arrow 스크립트 저장 및 사용
- play_arrow 스크립트에 대한 원격 소스 구성
- play_arrow 스크립트에 대한 세션 프로토콜 구성
- play_arrow 스크립트 실행 제어
- play_arrow 라우팅 엔진 간 스크립트 동기화
- play_arrow SLAX와 XSLT 간 스크립트 변환
-
- play_arrow 커밋 스크립트
- play_arrow 커밋 스크립트 개요
- play_arrow 커밋 스크립트 생성 및 실행
- play_arrow 커밋 스크립트를 사용하여 사용자 지정 경고, 오류 또는 시스템 로그 메시지 생성
- play_arrow 커밋 스크립트를 사용하여 영구적 또는 일시적 구성 변경 생성
- play_arrow 커밋 스크립트 매크로를 사용한 사용자 지정 구성 구문 생성
- play_arrow 커밋 스크립트 예제
- 예: 방화벽에 Final then accept Term 추가
- 예: RIP 그룹에 T1 인터페이스 추가
- 예: 커밋 스크립트를 사용하여 분류자 할당
- 예: 논리 인터페이스 및 IP 주소 자동 구성
- 예: LSP의 관리 그룹 구성
- 예: 기본 캡슐화 유형 구성
- 예: 이중 라우팅 엔진 구성
- 예: 인터페이스에서 내부 게이트웨이 프로토콜 구성
- 예: IS-IS 및 MPLS 인터페이스 제어
- 예: LDP 구성 제어
- 예: 간단한 인터페이스 구성을 기반으로 복잡한 구성 생성
- 예: 최소 최대 전송 단위(MTU) 설정 부과
- 예: ATM 가상 회로 수 제한
- 예: E1 인터페이스 수 제한
- 예: 기본 구성 로드
- 예: 글로벌 정책 앞에 추가
- 예: 전체 라우팅 테이블 가져오기 방지
- 예: T1 인터페이스에서 내부 클럭 필요
- 예: 구성 문 필요 및 제한
- play_arrow 커밋 스크립트에 사용되는 Junos XML 및 XSLT 태그 요소
- play_arrow 커밋 스크립트 문제 해결
-
- play_arrow Op 스크립트
- play_arrow Op 스크립트 개요
- play_arrow Op 스크립트 생성 및 실행
- Op 스크립트에 필요한 상용구
- 운영 모드 명령 및 출력 필드를 Junos XML 표기법에 매핑
- Op 스크립트에서 RPC 및 운영 모드 명령을 사용하는 방법
- op 스크립트에서 명령줄 인수 선언 및 사용Declare and use command-line arguments in op scripts
- Op 스크립트에 대한 도움말 텍스트 구성
- Op 스크립트에서 허용할 운영 모드 명령 정의
- Op 스크립트 활성화 및 스크립트 별칭 정의
- Op 스크립트에 대한 체크섬 해시 구성
- 로컬 디바이스에서 Op 스크립트 실행
- 원격 사이트에서 Op 스크립트 실행
- Op 스크립트 사용 안 함
- play_arrow Op 스크립트 예제
- SLAX 및 XSLT 스크립트를 사용하여 구성 변경
- 예: SLAX 및 XSLT Op 스크립트를 사용하여 구성 변경
- 예제: Python Op 스크립트를 사용하여 구성 변경
- 예: op 스크립트를 사용하여 show interfaces terse 명령의 출력 사용자 정의
- 예: op 스크립트를 사용하여 DNS 호스트 이름 정보 표시
- 예: Op 스크립트를 사용하여 여러 대상에 대한 LSP 찾기
- 예: Op 스크립트를 사용하여 FPC 다시 시작
- 예제: Op 스크립트를 사용하여 파일 내보내기
- 예제: Op 스크립트를 사용하여 파일 가져오기
- 예제: Op 스크립트를 사용하여 파일 검색
- play_arrow 서비스 템플릿 자동화를 사용하여 서비스 프로비저닝
- play_arrow Op 스크립트 문제 해결
-
- play_arrow 이벤트 정책 및 이벤트 스크립트
- play_arrow 이벤트 정책 개요
- play_arrow 이벤트 정책 트리거
- play_arrow 이벤트 정책 작업
- 운영 모드 명령을 실행하도록 이벤트 정책 구성하기
- 이벤트 정책을 구성하여 구성 변경
- 예: 이벤트 정책을 사용하여 구성 변경
- 예: 이벤트에 대한 응답으로 인터페이스 구성 변경
- 이벤트 정책에서 이벤트 스크립트 실행
- 이벤트 스크립트를 사용하여 구성 변경
- 인수를 이벤트 스크립트에 전달하도록 이벤트 정책 구성하기
- 이벤트를 무시하도록 이벤트 정책 구성
- 예: 다른 이벤트 수신을 기반으로 이벤트 무시
- SNMP 트랩 발생을 위한 이벤트 정책 사용 개요
- 예: 이벤트에 대한 응답으로 SNMP 트랩 발생
- 이벤트 정책에서 이벤트 시스템 로그 우선 순위 이해하기
- 예: 이벤트 정책에서 이벤트 시스템 로그 우선 순위 구성
- 예: 특정 이벤트 유형에 따라 이벤트 스크립트 출력 제한
- play_arrow 이벤트 정책 파일 아카이브 구성
- play_arrow 이벤트 정책 권한 구성
- play_arrow 이벤트 스크립트 개요
- play_arrow 이벤트 스크립트 생성 및 실행
- play_arrow 이벤트 정책 및 이벤트 스크립트 문제 해결
-
- play_arrow SNMP 스크립트
- play_arrow SNMP 스크립트 개요
- play_arrow SNMP 스크립트 생성 및 실행
- play_arrow SNMP 스크립트 예
- play_arrow SNMP 스크립트 문제 해결
-
- play_arrow 구성 명령문 및 작동 명령
XSLT 매개 변수 개요
매개 변수는 명명되거나 이름이 지정되지 않은 템플릿 중 하나에 전달될 수 있습니다. 템플릿 내에서 매개 변수를 선언해야 하며 달러 기호($)로 이름을 접두사하여 참조할 수 있습니다.
매개 변수 선언
매개 변수의 범위는 전역 또는 로컬일 수 있습니다. 스크립트 초기화에서 Junos OS 값이 설정된 매개 변수는 전역 매개변수로 정의되어야 합니다. 전역 매개 변수 선언은 스타일 시트 선언 바로 후에 배치됩니다. 스크립트는 전역 매개 변수에 기본 값을 할당할 수 있으며, 이는 Junos OS 매개 변수에 값을 주지 않는 경우에 사용됩니다.
<?xml version="1.0" standalone="yes"?> <xsl stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:junos="http://xml.juniper.net/junos/*/junos" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0" xmlns:ext="http://xmlsoft.org/XSLT/namespace" version="1.0"> <!-- global parameter --> <xsl:param name="interface1"/>
로컬 매개 변수는 블록의 시작 부분에 선언되어야 하며 해당 범위는 선언된 블록으로 제한됩니다. 템플릿 안에서는 태그와 name
속성을 사용하여 매개 변수를 <xsl:param>
선언합니다. 선택적으로 XPath 표현식을 포함할 수 있는 속성을 포함하여 각 매개 변수에 select
대한 기본값을 선언합니다. 매개 변수 없이 템플릿이 호출되면 기본 표현식이 평가되고 결과가 매개 변수에 할당됩니다. 템플릿에서 기본값을 정의하지 않으면 매개 변수가 빈 문자열로 기본값으로 지정됩니다.
다음 명명된 템플릿 print-host-name
은 매개 변수 message
를 선언하고 기본값을 정의합니다.
<xsl:template name="print-host-name"> <xsl:param name="message" select="concat('host-name: ', system/host-name)"/> <xsl:value-of select="$message"/> </xsl:template>
템플릿은 매개 변수 이름을 달러 기호($)로 접두사하여 매개 변수의 값 message
에 액세스합니다.
통과 매개 변수
템플릿을 호출할 때 요소와 name
속성을 사용하여 인수를 템플릿으로 <xsl:with-param>
전달합니다. 속성의 <xsl:with-param>
name
값은 실제 템플릿에 정의된 매개 변수의 이름과 일치해야 하며, 그렇지 않으면 매개변수가 무시됩니다. 선택적으로 템플릿에 전달한 각 매개 변수에 대해 속성 또는 요소의 <xsl:with-param>
내용을 사용하여 select
값을 정의할 수 있습니다.
템플릿에서 사용되는 매개 변수 값은 템플릿이 호출되는 방식에 따라 다릅니다. 템플릿이라고 부르는 print-host-name
다음 세 가지 예는 가능한 호출 환경을 보여줍니다.
템플릿을 호출하지만 특정 매개 변수에 <xsl:with-param>
대한 요소를 포함하지 않으면 템플릿에 정의된 기본 표현식이 평가되고 결과가 매개 변수에 할당됩니다. 템플릿에 해당 매개 변수에 대한 기본값이 없는 경우, 매개 변수는 빈 문자열로 기본값으로 지정됩니다. 다음 예제에서는 명명된 템플릿 print-host-name
을 호출하지만 호출에 매개 변수는 포함하지 않습니다. 이 경우, 명명된 템플릿은 템플릿에 print-host-name
정의된 매개 변수의 message
기본값을 사용하거나 기본값이 존재하지 않는 경우 빈 문자열을 사용합니다.
<xsl:template match="configuration"> <xsl:call-template name="print-host-name"/> </xsl:template>
템플릿을 호출하고 매개 변수를 포함하지만 호출 환경에서 매개 변수에 대한 값을 정의하지 않으면 스크립트는 이전에 초기화되었거나 매개 변수가 선언되지 않은 경우 오류를 생성합니다. 다음 예는 명명된 템플릿 print-host-name
을 호출하고 매개 변수에서 message
통과하지만 값을 포함하지 않습니다. 스크립트에서 선언 및 초기화되고 범위가 블록에 표시되는 경우 message
, 의 message
현재 값이 사용됩니다. 스크립트에서 선언되지만 초기화되지 않은 경우 message
의 message
값은 빈 문자열이 됩니다. 선언되지 않은 경우 message
스크립트가 오류를 생성합니다.
<xsl:template match="configuration"> <xsl:call-template name="print-host-name"> <xsl:with-param name="message"/> </xsl:call-template> </xsl:template>
템플릿을 호출하는 경우 매개 변수를 포함하고 매개 변수에 대한 값을 정의하면 템플릿은 제공된 값을 사용합니다. 다음 예제에서는 매개 변수와 정의된 값이 message
있는 명명된 템플릿 print-host-name
을 호출하므로 템플릿은 새 값을 사용합니다.
<xsl:template match="configuration"> <xsl:call-template name="print-host-name"> <xsl:with-param name="message" select=concat"('Host-name passed in: ', system/host-name)"/> </xsl:call-template> </xsl:template>
예: 매개 변수 및 일치 템플릿
다음 템플릿은 XML 문서의 루트와 /
일치합니다. 그런 다음 출력 문서에 추가되는 ,이라는 <outside>
요소를 생성하고 Junos OS 관리 프로세스(mgd)에 템플릿을 하위 트리에 configuration/system
재귀적으로 적용하도록 지시합니다. 매개 변수 host
는 일치하는 노드를 처리하는 데 사용됩니다. 매개 변수의 host
값은 구성 계층의 host-name
[edit system
] 수준에서 명령문의 값입니다.
<xsl:template match="/"> <outside> <xsl:apply-templates select="configuration/system"> <xsl:with-param name="host" select="configuration/system/host-name"/> </xsl:apply-templates> </outside> </xsl:template>
다음 템플릿은 이전 예에서 선택한 하위 트리의 상단인 요소와 일치 <system>
합니다. host
매개 변수는 기본값이 없는 것으로 선언됩니다. <inside>
요소가 생성되며, 이는 이전 예제의 host
태그에 <xsl:with-param>
정의된 매개변수 값을 포함합니다.
<xsl:template match="system"> <xsl:param name="host"/> <inside> <xsl:value-of select="$host"/> </inside> </xsl:template>
예: 매개 변수 및 명명된 템플릿
다음 명명된 템플릿 report-changed
은 두 가지 dot
매개 변수를 선언합니다. 이는 현재 노드의 기본값이며changed
, 은(는) 노드 dot
속성에 기본값으로 지정됩니다changed
.
<xsl:template name="report-changed"> <xsl:param name="dot" select="."/> <xsl:param name="changed" select="$dot/@changed"/> <!-- ... --> </xsl:template>
다음 stanza는 템플릿을 report-changed
호출하고 템플릿에 changed
정의된 report-changed
기본 소스와 다른 속성에 대한 소스를 정의합니다. 템플릿이 report-changed
호출되면 기본 소스 대신 속성에 대해 changed
새로 정의된 소스를 사용합니다.
<xsl:template match="system"> <xsl:call-template name="report-changed"> <xsl:with-param name="changed" select="../@changed"/> </xsl:call-template> </xsl:template>
마찬가지로 템플릿 호출은 다음과 같이 매개 변수를 dot
포함하고 기본 현재 노드가 아닌 소스를 정의할 수 있습니다.
<xsl:template match="system"> <xsl:call-template name="report-changed"> <xsl:with-param name="dot" select="../../> </xsl:call-template> </xsl:template>