Benutzer-Werkzeuge

Webseiten-Werkzeuge


event-action-python-aos-r8

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
event-action-python-aos-r8 [2020/09/09 07:26] – angelegt bennyevent-action-python-aos-r8 [2024/06/09 10:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 10: Zeile 10:
 /flash/python /flash/python
 </code> </code>
-In diesem Verzeichnis liegen bereits zwei Skripte **default_broker_vso.py** und **iec_config.py**.+In diesem Verzeichnis liegen bereits zwei Skripte **default_broker_vso.py** und **iec_config.py**, diese sollte man nicht ändern/löschen.
  
 ==== Welche Python Skripte werden bei welchen Traps ausgeführt? ==== ==== Welche Python Skripte werden bei welchen Traps ausgeführt? ====
Zeile 23: Zeile 23:
 </code> </code>
  
-==== Ein einfaches Beispiel als Codegerüstchassis_trap.py ====+==== Tipp"snmp-trap absorption" abschalten ====
  
-In diesem Beispiel nehmen wir ein einfach per CLI zu erzeugenen SNMP Trap "debug generate trap 10und geben den Inhalt auf der seriellen Konsole (!aus.+Zumindest während der Entwicklung empfehlen wir "snmp-trap absorptionabzuschalten. Standardmäßig werden SNMP-Traps für 15 Sekunden nach ihrem letzten Auftreten absorbiert (und damit startet auch kein Skript).
  
 <code> <code>
 Switch-> snmp-trap absorption disable  Switch-> snmp-trap absorption disable 
  
 +Switch-> show snmp-trap config 
 +Absorption service : disabled
 +Traps to WebView : enabled
 +
 +id trap name                            family          absorption   admin-state
 +--+------------------------------------+---------------+------------+-------------
 + 0 coldStart                            chassis         15 seconds     enable
 + 1 warmStart                            chassis         15 seconds     enable
 + 2 linkDown                             interface       15 seconds     enable
 + 3 linkUp                               interface       15 seconds     enable
 + 4 authenticationFailure                snmp            15 seconds     enable
 + 5 entConfigChange                      module          15 seconds     enable
 + 6 policyEventNotification              qos             15 seconds     enable
 + 7 chassisTrapsStr                      chassis         15 seconds     enable
 + 8 chassisTrapsAlert                    chassis         15 seconds     enable
 + 9 chassisTrapsStateChange              chassis         15 seconds     enable
 +10 chassisTrapsMacOverlap               module          15 seconds     enable
 +11 vrrpTrapNewMaster                    vrrp            15 seconds     enable
 +12 vrrpTrapAuthFailure                  vrrp            15 seconds     enable
 +13 healthMonModuleTrap                  health          15 seconds     enable
 +14 healthMonPortTrap                    health          15 seconds     enable
 +15 healthMonCmmTrap                     health          15 seconds     enable
 +16 bgpEstablished                       bgp             15 seconds     enable
 +17 bgpBackwardTransition                bgp             15 seconds     enable
 +18 esmDrvTrapDropsLink                  interface       15 seconds     enable
 +19 portViolationTrap                    interface       15 seconds     enable
 +20 dvmrpNeighborLoss                    ipmr            15 seconds     enable
 +21 dvmrpNeighborNotPruning              ipmr            15 seconds     enable
 +22 risingAlarm                          rmon            15 seconds     enable
 +23 fallingAlarm                         rmon            15 seconds     enable
 +24 stpNewRoot                           stp             15 seconds     enable
 +25 stpRootPortChange                    stp             15 seconds     enable
 +26 mirrorConfigError                    pmm             15 seconds     enable
 +27 mirrorUnlikeNi                       pmm             15 seconds     enable
 +28 slbTrapOperStatus                    loadbalancing   15 seconds     enable
 +29 sessionAuthenticationTrap            session         15 seconds     enable
 +30 trapAbsorptionTrap                   none             0 seconds     enable
 +31 alaDoSTrap                           ip              15 seconds     enable
 +32 ospfNbrStateChange                   ospf            15 seconds     enable
 +33 ospfVirtNbrStateChange               ospf            15 seconds     enable
 +34 lnkaggAggUp                          linkaggregation 15 seconds     enable
 +35 lnkaggAggDown                        linkaggregation 15 seconds     enable
 +36 lnkaggPortJoin                       linkaggregation 15 seconds     enable
 +37 lnkaggPortLeave                      linkaggregation 15 seconds     enable
 +38 lnkaggPortRemove                     linkaggregation 15 seconds     enable
 +39 monitorFileWritten                   pmm             15 seconds     enable
 +40 alaVrrp3TrapProtoError               vrrp            15 seconds     enable
 +41 alaVrrp3TrapNewMaster                vrrp            15 seconds     enable
 +42 chassisTrapsPossibleDuplicateMac     chassis         15 seconds     enable
 +43 lldpRemTablesChange                  aip             15 seconds     enable
 +44 pimNeighborLoss                      ipmr            15 seconds     enable
 +45 pimInvalidRegister                   ipmr            15 seconds     enable
 +46 pimInvalidJoinPrune                  ipmr            15 seconds     enable
 +47 pimRPMappingChange                   ipmr            15 seconds     enable
 +48 pimInterfaceElection                 ipmr            15 seconds     enable
 +49 pimBsrElectedBSRLostElection         ipmr            15 seconds     enable
 +50 pimBsrCandidateBSRWinElection        ipmr            15 seconds     enable
 +51 lpsViolationTrap                     bridge          15 seconds     enable
 +52 lpsPortUpAfterLearningWindowExpiredT bridge          15 seconds     enable
 +53 lpsLearnTrap                         bridge          15 seconds     enable
 +54 gvrpVlanLimitReachedEvent            bridge          15 seconds     enable
 +55 alaNetSecPortTrapAnomaly             netsec          15 seconds     enable
 +56 alaNetSecPortTrapQuarantine          netsec          15 seconds     enable
 +57 ifMauJabberTrap                      interface       15 seconds     enable
 +58 udldStateChange                      interface       15 seconds     enable
 +59 ndpMaxLimitReached                   ip              15 seconds     enable
 +60 ripRouteMaxLimitReached              rip             15 seconds     enable
 +61 ripngRouteMaxLimitReached            ripng           15 seconds     enable
 +62 alaErpRingStateChanged               bridge          15 seconds     enable
 +63 alaErpRingMultipleRpl                bridge          15 seconds     enable
 +64 alaErpRingRemoved                    bridge          15 seconds     enable
 +65 ntpMaxAssociation                    ntp             15 seconds     enable
 +66 ddmTemperatureThresholdViolated      interface       15 seconds     enable
 +67 ddmVoltageThresholdViolated          interface       15 seconds     enable
 +68 ddmCurrentThresholdViolated          interface       15 seconds     enable
 +69 ddmTxPowerThresholdViolated          interface       15 seconds     enable
 +70 ddmRxPowerThresholdViolated          interface       15 seconds     enable
 +71 webMgtServerErrorTrap                webmgt          15 seconds     enable
 +72 multiChassisIpcVlanUp                mcm             15 seconds     enable
 +73 multiChassisIpcVlanDown              mcm             15 seconds     enable
 +74 multiChassisMisconfigurationFailure  mcm             15 seconds     enable
 +75 multiChassisHelloIntervalConsisFailu mcm             15 seconds     enable
 +76 multiChassisStpModeConsisFailure     mcm             15 seconds     enable
 +77 multiChassisStpPathCostModeConsisFai mcm             15 seconds     enable
 +78 multiChassisVflinkStatusConsisFailur mcm             15 seconds     enable
 +79 multiChassisStpBlockingStatus        mcm             15 seconds     enable
 +80 multiChassisLoopDetected             mcm             15 seconds     enable
 +81 multiChassisHelloTimeout             mcm             15 seconds     enable
 +82 multiChassisVflinkDown               mcm             15 seconds     enable
 +83 multiChassisVFLMemberJoinFailure     mcm             15 seconds     enable
 +84 alaDHLVlanMoveTrap                   vlan            15 seconds     enable
 +85 alaDhcpClientAddressAddTrap          ip-dhcp         15 seconds     enable
 +86 alaDhcpClientAddressExpiryTrap       ip-dhcp         15 seconds     enable
 +87 alaDhcpClientAddressModifyTrap       ip-dhcp         15 seconds     enable
 +88 vRtrIsisDatabaseOverload             isis            15 seconds     enable
 +89 vRtrIsisManualAddressDrops           isis            15 seconds     enable
 +90 vRtrIsisCorruptedLSPDetected         isis            15 seconds     enable
 +91 vRtrIsisMaxSeqExceedAttempt          isis            15 seconds     enable
 +92 vRtrIsisIDLenMismatch                isis            15 seconds     enable
 +93 vRtrIsisMaxAreaAddrsMismatch         isis            15 seconds     enable
 +94 vRtrIsisOwnLSPPurge                  isis            15 seconds     enable
 +95 vRtrIsisSequenceNumberSkip           isis            15 seconds     enable
 +96 vRtrIsisAutTypeFail                  isis            15 seconds     enable
 +97 vRtrIsisAuthFail                     isis            15 seconds     enable
 +98 vRtrIsisVersionSkew                  isis            15 seconds     enable
 +99 vRtrIsisAreaMismatch                 isis            15 seconds     enable
 +100 vRtrIsisRejectedAdjacency           isis            15 seconds     enable
 +101 vRtrIsisLSPTooLargeToPropagate      isis            15 seconds     enable
 +102 vRtrIsisOrigLSPBufSizeMismatch      isis            15 seconds     enable
 +103 vRtrIsisProtoSuppMismatch           isis            15 seconds     enable
 +104 vRtrIsisAdjacencyChange             isis            15 seconds     enable
 +105 vRtrIsisCircIdExhausted             isis            15 seconds     enable
 +106 vRtrIsisAdjRestartStatusChange      isis            15 seconds     enable
 +107 mvrpVlanLimitReachedEvent           bridge          15 seconds     enable
 +108 alaHAVlanClusterPeerMismatch        ha-vlan         15 seconds     enable
 +109 alaHAVlanMCPeerMismatch             ha-vlan         15 seconds     enable
 +110 alaHAVlanDynamicMAC                 ha-vlan         15 seconds     enable
 +111 unpMcLagMacIgnored                  da-unp          15 seconds     enable
 +112 unpMcLagConfigInconsistency         da-unp          15 seconds     enable
 +113 multiChassisGroupConsisFailure      mcm             15 seconds     enable
 +114 multiChassisTypeConsisFailure       mcm             15 seconds     enable
 +115 alaPimNonBidirHello                 ipmr            15 seconds     enable
 +116 dot1agCfmFaultAlarm                 bridge          15 seconds     enable
 +117 alaSaaIPIterationCompleteTrap       system          15 seconds     enable
 +118 alaSaaEthIterationCompleteTrap      system          15 seconds     enable
 +119 alaSaaMacIterationCompleteTrap      system          15 seconds     enable
 +120 virtualChassisStatusChange          vcm             15 seconds     enable
 +121 virtualChassisRoleChange            vcm             15 seconds     enable
 +122 virtualChassisVflStatusChange       vcm             15 seconds     enable
 +123 virtualChassisVflMemberPortStatusCh vcm             15 seconds     enable
 +124 virtualChassisVflMemberPortJoinFail vcm             15 seconds     enable
 +125 lldpV2RemTablesChange               aip             15 seconds     enable
 +126 vRtrLdpInstanceStateChange          mpls            15 seconds     enable
 +127 evbFailedCdcpTlvTrap                evb             15 seconds     enable
 +128 evbFailedEvbTlvTrap                 evb             15 seconds     enable
 +129 evbUnknownVsiManagerTrap            evb             15 seconds     enable
 +130 evbVdpAssocTlvTrap                  evb             15 seconds     enable
 +131 evbCdcpLldpExpiredTrap              evb             15 seconds     enable
 +132 evbTlvExpiredTrap                   evb             15 seconds     enable
 +133 evbVdpKeepaliveExpiredTrap          evb             15 seconds     enable
 +134 smgrServiceError                    svcmgr          15 seconds     enable
 +135 smgrServiceHwError                  svcmgr          15 seconds     enable
 +136 smgrSapError                        svcmgr          15 seconds     enable
 +137 smgrSapHwError                      svcmgr          15 seconds     enable
 +138 smgrSdpError                        svcmgr          15 seconds     enable
 +139 smgrSdpHwError                      svcmgr          15 seconds     enable
 +140 smgrSdpBindError                    svcmgr          15 seconds     enable
 +141 smgrSdpBindHwError                  svcmgr          15 seconds     enable
 +142 smgrGeneralError                    svcmgr          15 seconds     enable
 +143 smgrStatusChange                    svcmgr          15 seconds     enable
 +144 portViolationNotificationTrap       interface       15 seconds     enable
 +145 multiChassisConsisFailureRecovered  mcm             15 seconds     enable
 +146 alaSaaPacketLossTrap                system          15 seconds     enable
 +147 alaSaaJitterThresholdYellowTrap     system          15 seconds     enable
 +148 alaSaaRTTThresholdYellowTrap        system          15 seconds     enable
 +149 alaSaaJitterThresholdRedTrap        system          15 seconds     enable
 +150 alaSaaRTTThresholdRedTrap           system          15 seconds     enable
 +151 chassisTrapsDuplicateMacCleared     chassis         15 seconds     enable
 +152 alaFipsResourceThresholdReached     fips            15 seconds     enable
 +153 virtualChassisUpgradeComplete       vcm             15 seconds     enable
 +154 appFPSignatureMatchTrap             appfp           15 seconds     enable
 +155 virtualChassisVflSpeedTypeChange    vcm             15 seconds     enable
 +156 alaSIPSnoopingACLPreemptedBySOSCall qos             15 seconds     enable
 +157 alaSIPSnoopingRTCPOverThreshold     sip-snooping    15 seconds     enable
 +158 alaSIPSnoopingRTCPPktsLost          qos             15 seconds     enable
 +159 alaSIPSnoopingSignallingLost        qos             15 seconds     enable
 +160 alaSIPSnoopingCallRecordsFileMoved  sip-snooping    15 seconds     enable
 +161 alaIPv6NeighborLimitExceeded        ip              15 seconds     enable
 +162 alaIPv6NeighborVRFLimitExceeded     ip              15 seconds     enable
 +163 alaIPv6InterfaceNeighborLimitExceed ip              15 seconds     enable
 +164 alaDyingGaspTrap                    interface       15 seconds     enable
 +165 alaDhcpSrvLeaseUtilizationThreshold dhcp-server     15 seconds     enable
 +166 alaDHCPv6SrvLeaseUtilizationThresho dhcpv6-server   15 seconds     enable
 +167 smgrServiceStatusChange             svcmgr          15 seconds     enable
 +168 smgrSapStatusChange                 svcmgr          15 seconds     enable
 +169 smgrSdpStatusChange                 svcmgr          15 seconds     enable
 +170 smgrSdpBindStatusChange             svcmgr          15 seconds     enable
 +171 alaPethPwrSupplyConflictTrap        module          15 seconds     enable
 +172 alaPethPwrSupplyNotSupportedTrap    module          15 seconds     enable
 +173 chasTrapsBPSLessAllocSysPwr         chassis         15 seconds     enable
 +174 chasTrapsBPSStateChange             chassis         15 seconds     enable
 +175 chasTrapsNiBPSFETStateChange        chassis         15 seconds     enable
 +176 alaDhcpBindingDuplicateEntry        ip-dhcp         15 seconds     enable
 +177 alaVCSPProtectionTrap               vcm             15 seconds     enable
 +178 alaVCSPRecoveryTrap                 vcm             15 seconds     enable
 +179 pethPsePortOnOffNotification        module          15 seconds     enable
 +180 pethMainPowerUsageOnNotification    module          15 seconds     enable
 +181 pethMainPowerUsageOffNotification   module          15 seconds     enable
 +182 chasTrapsBPSFwUpgradeAlert          chassis         15 seconds     enable
 +183 alaAppMonAppRecordFileCreated       app-mon         15 seconds     enable
 +184 alaAppMonFlowRecordFileCreated      app-mon         15 seconds     enable
 +185 alaDPIFlowRecordFileCreated         dpi             15 seconds     enable
 +186 alaLbdStateChangeToShutdown         lbd             15 seconds     enable
 +187 alaLbdStateChangeForClearViolationA lbd             15 seconds     enable
 +188 alaLbdStateChangeForAutoRecovery    lbd             15 seconds     enable
 +189 alaAutoConfigAutoFabricEnableTrap   unknown         15 seconds     enable
 +190 alaVMSnoopingVMLearntAlert          vm-snooping     15 seconds     enable
 +191 alaVMSnoopingVMRemovedAlert         vm-snooping     15 seconds     enable
 +192 alaVMSnoopingReservedHwResourceLimi vm-snooping     15 seconds     enable
 +193 alaDistArpItfChange                 ip              15 seconds     enable
 +194 alaDistArpNiThreshold               ip              15 seconds     enable
 +195 smgrVxlanSdpBindStatusChange        svcmgr          15 seconds     enable
 +196 alaAutoFabricSTPModeChangeAlert     fips            15 seconds     enable
 +197 alaKerberosReqTimeoutTrap           da-unp          15 seconds     enable
 +198 alaKerberosInactivityTimerExpiryTra da-unp          15 seconds     enable
 +199 alaKerberosRateLimitExceed          da-unp          15 seconds     enable
 +200 pethMainPowerUsageNiFailNotificatio module          15 seconds     enable
 +201 systemSwlogSizeTrap                 system          15 seconds     enable
 +202 esmStormThresholdViolationStatus    interface       15 seconds     enable
 +203 alaSTPLoopGuardError                stp             15 seconds     enable
 +204 alaSTPLoopGuardRecovery             stp             15 seconds     enable
 +205 alaLldpTrustViolation               aip             15 seconds     enable
 +206 alaLicenseManagerDemoDayAlert       licensing       15 seconds     enable
 +207 alaAaaUserCreation                  aaa             15 seconds     enable
 +208 alaAaaUserDeletion                  aaa             15 seconds     enable
 +209 alaAaaUserModification              aaa             15 seconds     enable
 +210 systemSwlogFailureTraps             system          15 seconds     enable
 +211 pethPseMainTemperatureUpAlert       module          15 seconds     enable
 +212 pethPseMainTemperatureDownAlert     module          15 seconds     enable
 +213 systemRebootSwlogFailureTrap        system          15 seconds     enable
 +214 ospfv3RestartStatusChange           ospfv3          15 seconds     enable
 +215 ospfv3NbrRestartHelperStatusChange  ospfv3          15 seconds     enable
 +216 ospfv3VirtNbrRestartHelperStatusCha ospfv3          15 seconds     enable
 +217 smgrL2greSdpBindStatusChange        svcmgr          15 seconds     enable
 +218 dot3OamThresholdEvent               bridge          15 seconds     enable
 +219 dot3OamNonThresholdEvent            bridge          15 seconds     enable
 +220 alaDot3OamThresholdEventClear       bridge          15 seconds     enable
 +221 alaDot3OamNonThresholdEventClear    bridge          15 seconds     enable
 +222 alaAlarmReplayAlarmInputEvent       alarm-manager   15 seconds     enable
 +223 alaHWRoutingCapacityExceeded        ip              15 seconds     enable
 +224 vrrpv3NewMaster                     vrrp            15 seconds     enable
 +225 vrrpv3ProtoError                    vrrp            15 seconds     enable
 +226 alaDhcpBindingTcamFail              ip-dhcp         15 seconds     enable
 +227 systemStorageLockTrap               storage-locking 15 seconds     enable
 +228 alaDhcpIsfDrop                      ip-dhcp         15 seconds     enable
 +229 alaDaRouterAuthUserPassedAuthThresh da-unp          15 seconds     enable
 +230 alaDaRouterAuthUserMaxRetryFailed   da-unp          15 seconds     enable
 +231 alaDaRouterAuthUserFailedAuthThresh da-unp          15 seconds     enable
 +232 alaDaRouterAuthConfigThresholdExcee da-unp          15 seconds     enable
 +233 alaDaRouterAuthMaxCapacityReached   da-unp          15 seconds     enable
 +234 alaTestOamTxDoneTrap                bridge          15 seconds     enable
 +235 alaTestOamRxReadyTrap               bridge          15 seconds     enable
 +236 alaTestOamTestAbortTrap             bridge          15 seconds     enable
 +237 alaTestOamGroupTxDoneTrap           bridge          15 seconds     enable
 +238 alaTestOamGroupRxReadyTrap          bridge          15 seconds     enable
 +239 alaTestOamGroupAbortTrap            bridge          15 seconds     enable
 +240 alaTestOamStatsWriteDoneTrap        bridge          15 seconds     enable
 +241 alaDhcpv6IsfTcamFail                ip              15 seconds     enable
 +242 alaHWArpCapacityExceeded            ip              15 seconds     enable
 +243 alaHWMacCapacityExceeded            capability      15 seconds     enable
 +244 alaDaUnpMaxUserExceeded             da-unp          15 seconds     enable
 +245 alaDaUnpHWResourceExhaust           da-unp          15 seconds     enable
 +246 alaDhcpVsoBrokerIpAddress           ip-dhcp         15 seconds     enable
 +
 +</code>
 +
 +==== Ein einfaches Beispiel als Codegerüst: chassis_trap.py ====
 +
 +In diesem Beispiel nehmen wir ein einfach per CLI zu erzeugenden SNMP Trap "debug generate trap 10" und geben den Inhalt auf der seriellen Konsole (!) aus - also nicht der SSH-Session.
 +
 +<code>
 Switch-> vi /flash/python/chassis_trap.py Switch-> vi /flash/python/chassis_trap.py
  
Zeile 45: Zeile 306:
 </code> </code>
  
 +===== Fortgeschritten =====
  
 +==== Anwendungsfall: OmniSwitch-Konfiguration via scp auf Server exportieren ====
  
 +Damit der OmniSwitch nach erfolgreichem "write memory flash-synchro" per scp auf einen externen Server exportiert, müssen ein paar Voraussetzungen erfüllt sein.
  
 +  - Ein SSH private/public Key für den OmniSwitch muss hinterlegt sein (dabei ist der private-key auf dem OmniSwitch und der public-key auf dem Server in ~/.ssh/authorized_keys)
 +  - Bei einer Automatisierung ist eine "yes/no"-Abfrage wie für den SSH-Host-Fingerprint für known_hosts eine Herausforderung die es zu lösen gilt
 +  - Damit die Verbindung per SSH/SCP erfolgreich ist, muss das identity_file mit korrekten Zugriffsrechten hinterlegt werden
 +  - Das Skript auf dem Switch hinterlegen
 +  - Mit "event-action" die CLI-Aktion "write memory flash-synchro" mit dem Skript verknüpfen
 +  - Den Vorgang testen
 +
 +=== 1. SSH private/public Key erzeugen ===
 +<code>
 +ssh-keygen -t rsa -b 2048 -C "omniswitch@home"
 +</code>
 +Der resultierende id_rsa.pub-Key muss für den Benutzer in ~/.ssh/authorized_keys hinterlegt werden. Der id_rsa (private-key) muss auf den Switch (die Switches) kopiert und dort mit **chmod 600 /path/to/id_rsa** mit den korrekten Zugriffsrechten versehen werden.
 +
 +=== 2. Automatisierung von SSH-Host-Fingerprint yes/no ===
 +
 +Der Zusatz **-o StrictHostKeyChecking=no** sollte nur verwendet werden, wenn man mit der Konsequenz einer potentiellen MITM-Attacke leben kann. Bitte beachten dass das Skript fehlschlagen wird, wenn sich der SSH-Host-Fingerprint ändert. Das könnte man zwar auch wegkonfigurieren, aber ich halte es für keine gute Idee.
 +
 +<code>
 +Switch-> scp -i /path/to/omniswitch_private_ssh_key -o StrictHostKeyChecking=no /flash/working/vcboot.cfg <username>@<server>:/path/to/configbackup/filename.cfg
 +</code>
 +
 +=== 3. Korrekte Zugriffsrechte für ssh_private_key ===
 +
 +<code>
 +Switch-> chmod 600 /path/to/omniswitch_private_ssh_key
 +</code>
 +
 +=== 4. Skript für Export ===
 +Vorausgesetzt die Tipps aus diesem Artikel wurden angewendet, kann nun mit diesem Skript die Konfiguration extern abgelegt werden. Das folgende Skript hier abspeichern: **/flash/python/chassis_trap.py** 
 +
 +<file python chassis_trap.py>
 +#!/usr/bin/env python3
 +
 +import sys
 +import os
 +import getopt
 +import json
 +import subprocess
 +
 +# Based upon work done by Patricio Martelo and Benny Eggerstedt in 2015
 +# Some corrections and enhancements done by Benny in 2020
 +
 +# Variables to set by customer
 +ssh_priv_key = "/flash/python/omniswitch_private_ssh_key"
 +config_to_backup = "/flash/working/vcboot.cfg"
 +scp_target_user = "benny"
 +scp_host = "shiva.home" # could also be an IP address
 +scp_path = "/home/benny/configs/" # full path or relative to ~ of the user, include the "/" at the end!
 +
 +# Get system name
 +system_name = os.uname()[1].replace(" ", "_")
 +
 +# Uncomment during early stage of development
 +#print(sys.argv)
 +
 +# Load the data that is being sent to us
 +# -t holds the traptype
 +# -d holds the trapdata
 +try:
 +    opts, args = getopt.getopt(sys.argv[1:], "t:d:")
 +except getopt.GetoptError as err:
 +    print(err)
 +    print("{0}".format(sys.argv))
 +    sys.exit(2)
 +traptype = "(none)"
 +trapdata = "{}"
 +
 +# Go through the data in opts and allocate it properly
 +# traptype gets the value from -t
 +# trapdata gets the value from -d
 +for o, a in opts:
 +    if o == "-t":
 +        traptype = a
 +    elif o == "-d":
 +        trapdata = a
 +
 +#print("traptype: {0}".format(traptype))
 +#print("trapdata: {0}".format(trapdata))
 +
 +#print(json.loads(trapdata))
 +
 +trapdetail = json.loads(trapdata)
 +
 +#print(trapdetail)
 +
 +if trapdetail["chassisTrapsAlertNumber"] == 5:
 +    # This type of trap is sent when write memory flash-synchro finished
 +    #print("detected write memory flash synchro")
 +    # When the "write memory flash-synchro" was successful, export the configuration
 +    if "success" in trapdetail["chassisTrapsAlertDescr"]:
 +        system_date = subprocess.check_output(["system", "date"]).decode("ascii").strip().replace("/", "_")
 +        system_time = subprocess.check_output(["system", "time"]).decode("ascii").strip().replace(":", "_")
 +        timestamp = system_date + "_" + system_time 
 +        os.system("scp -v -i {0} -o StrictHostKeyChecking=no {1} {2}@{3}:{4}{5}_{6}.cfg".format(ssh_priv_key, config_to_backup, scp_target_user, scp_host, scp_path, system_name, timestamp))
 +        print("Process finished!")
 +</file>
 +
 +**5. Mit "event-action" den Trap mit dem Skript verknüpfen:**
 +<code>
 +Switch-> event-action trap chassisTrapsAlert script /flash/python/chassis_trap.py
 +</code>
 +
 +**6. Testen:**
 +<code>
 +Switch-> write memory flash-synchro
 +</code>
 +
 +**Ausgabe auf der Switch-Konsole:**
 +<code>
 +{'sysUpTime': 85955617, 'physicalIndex': 65, 'chassisTrapsObjectType': 5, 'chassisTrapsObjectNumber': 65, 'chassisTrapsAlertNumber': 4, 'chassisTrapsAlertDescr': 'CERTIFY w/FLASH SYNCHRO process started'}
 +
 +Wed Sep  9 18:16:07 : ChassisSupervisor MipMgr INFO message:
 ++++ Copy running to certified succeeded
 +{'sysUpTime': 85961949, 'physicalIndex': 65, 'chassisTrapsObjectType': 5, 'chassisTrapsObjectNumber': 65, 'chassisTrapsAlertNumber': 5, 'chassisTrapsAlertDescr': 'CERTIFY process completed successfully'}
 +Please wait...
 +Executing: program /bin/tps/ssh host shiva.home, user benny, command scp -v -t /home/benny/configs/Switch_09_09_2020_18_16_07.cfg
 +Sending file modes: C0644 4312 vcboot.cfg
 +Sink: C0644 4312 vcboot.cfg
 +Process finished!
 +</code>
 +===== Fehleranalyse =====
 +
 +==== scp lost connection ====
 +
 +Wenn die folgende Fehlermeldung auftaucht, liegt entweder ein Kommunikationsfehler vor oder das identity_file ist für zuviele Nutzer lesbar/editierbar.
 +<code>
 +Please wait...
 +lost connection
 +</code>
 +
 +**Lösung:**
 +<code>
 +Switch-> chmod 600 /path/to/omniswitch_private_key
 +</code>
 +
 +==== scp known_hosts ====
 +(Abfrage der yes/no SSH Fingerprint-Bestätigung deaktivieren.)
 +
 +Der Zusatz -o StrictHostKeyChecking=no führt dazu dass man die Identität des Servers nicht bestätigen muss. Die Identität des Servers wird aber trotzdem in ~/.ssh/known_hosts abgelegt und wenn der Fingerprint sich ändert wird das Skript fehlschlagen.
 +<code>
 +scp -i /path/to/omniswitch_private_ssh_key -o StrictHostKeyChecking=no /flash/working/vcboot.cfg <username>@<server>:/path/to/configbackup/filename.cfg
 +</code>
  
event-action-python-aos-r8.1599636392.txt.gz · Zuletzt geändert: 2024/06/09 10:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki