이벤트 스크립트에서 이벤트 및 원격 실행 세부 정보 사용
이벤트 정책 작업에는 하나 이상의 이벤트 스크립트 실행이 포함될 수 있습니다. 이벤트 정책이 이벤트 스크립트를 실행하면 이벤트 프로세스는 이벤트 세부 정보를 스크립트로 전달합니다. 이러한 이벤트 세부 정보를 캡처, 평가 및 필요에 따라 로그 파일로 전송할 수 있습니다. 또한 구성된 원격 실행 세부 정보도 이벤트 스크립트로 전달됩니다.
트리거된 이벤트 및 수신 이벤트와 같은 두 가지 유형의 이벤트 세부 정보가 반환됩니다. 트리거된 이벤트는 정책을 트리거한 이벤트의 세부 정보를 기록합니다. 수신된 이벤트는 트리거링 이벤트 이전에 발생한 이벤트의 세부 정보를 기록합니다. 트리거 이벤트 세부 정보는 항상 이벤트 스크립트로 전달됩니다. 수신된 이벤트 세부 정보는 상관 이벤트에 대한 이벤트 정책이 트리거된 경우에만 제공됩니다.
하나 이상의 원격 호스트에 대한 호스트 이름, 사용자 이름 및 패스프레이즈를 포함하는 원격 실행 세부 정보를 통해 이벤트 스크립트는 이벤트 스크립트에 직접 연결 정보를 인코딩하지 않고도 원격 호스트에서 원격 절차 호출을 호출할 수 있습니다. 계층 수준에서 원격 실행 세부 정보를 [edit event-options event-script file filename remote-execution]
구성합니다. 개별 이벤트 스크립트 대신 원격 실행 세부 정보를 구성에 포함하면 정보가 단일 위치에 캡처되고 패스프레이즈가 암호화됩니다. 이벤트 스크립트 파일의 경우에는 그렇지 않습니다.
이벤트 세부 정보 및 원격 실행 세부 정보는 다음과 같은 형식의 XML로 SLAX 및 XSLT 이벤트 스크립트로 전달됩니다.
<event-script-input> <junos-context> ... </junos-context> <trigger-event> <id>event-id</id> <type>event-type</type> <generation-time>timestamp</generation-time> <process> <name>process-name</name> <pid>pid</pid> </process> <hostname>hostname</hostname> <message>message-string</message> <facility>facility-string</facility> <severity>severity-string</severity> <attribute-list> <attribute> <name>attribute-name</name> <value>attribute-value</value> </attribute> </attribute-list> </trigger-event> <received-events> <received-event> <id>event-id</id> <type>event-type</type> <generation-time>timestamp</generation-time> <process> <name>process-name</name> <pid>pid</pid> </process> <hostname>hostname</hostname> <facility>facility-string</facility> <severity>severity-string</severity> <attribute-list> <attribute> <name>attribute-name</name> <value>attribute-value</value> </attribute> </attribute-list> </received-event> </received-events> <remote-execution-details> <remote-execution-detail> <remote-hostname>hostname</remote-hostname> <username>username</username> <passphrase>passphrase</passphrase> </remote-execution-detail> </remote-execution-details> </event-script-input>
요소에 대한 <junos-context>
자세한 내용은 Junos OS 자동화 스크립트의 Global Parameters 및 Variables를 참조하십시오.
Python 이벤트 스크립트는 및 객체를 임포트 Junos_Trigger_Event
Junos_Received_Events
하여 트리거 이벤트 및 수신 이벤트에 Junos_Trigger_Event
대한 세부 정보에 액세스해야 하며 lxml.etree _Element
Junos_Received_Events
, 객체이며 SLAX 및 XSLT 스크립트 입력의 계층과 동일한 계층 및 <received-events>
태그 이름을 <trigger-event>
포함해야 합니다.
Python 이벤트 스크립트는 lxml 방식(예: xpath()
find()
findall()
및 ,)을 사용하여 객체에서 필요한 이벤트 세부 정보를 추출할 수 있습니다.findtext()
예를 들어:
from junos import Junos_Trigger_Event from junos import Junos_Received_Events id = Junos_Trigger_Event.xpath('//trigger-event/id')[0].text name = Junos_Trigger_Event.xpath('//trigger-event/process/name')[0].text message = Junos_Trigger_Event.xpath('//trigger-event/message')[0].text
Python 이벤트 스크립트는 계층 수준에서 구성된 [edit event-options event-script file filename remote-execution]
원격 실행 세부 정보에 액세스하기 위해 임포트 Junos_Remote_Execution_Details
해야 합니다. Junos_Remote_Execution_Details
여러 개의 구성된 호스트에서 쉽게 반복할 수 있는 일련의 원격 디바이스를 생성하는 생성기 기능입니다. 다음 코드에서와 같이 , user
및 속성을 사용하여 host
구성된 원격 호스트의 호스트 이름, 사용자 이름 및 passwd
패스프레이즈를 참조할 수 있습니다.
from junos import Junos_Remote_Execution_Details for remote in Junos_Remote_Execution_Details(): hostname = remote.host username = remote.user passphrase = remote.passwd