event-action-python-aos-r8
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
event-action-python-aos-r8 [2020/09/09 13:09] – benny | event-action-python-aos-r8 [2024/06/09 10:29] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 315: | Zeile 315: | ||
- Bei einer Automatisierung ist eine " | - Bei einer Automatisierung ist eine " | ||
- Damit die Verbindung per SSH/SCP erfolgreich ist, muss das identity_file mit korrekten Zugriffsrechten hinterlegt werden | - Damit die Verbindung per SSH/SCP erfolgreich ist, muss das identity_file mit korrekten Zugriffsrechten hinterlegt werden | ||
+ | - Das Skript auf dem Switch hinterlegen | ||
+ | - Mit " | ||
+ | - Den Vorgang testen | ||
=== 1. SSH private/ | === 1. SSH private/ | ||
Zeile 336: | Zeile 339: | ||
</ | </ | ||
- | === 4. Korrekte Zugriffsrechte | + | === 4. Skript |
+ | Vorausgesetzt die Tipps aus diesem Artikel wurden angewendet, kann nun mit diesem Skript die Konfiguration extern abgelegt werden. Das folgende Skript hier abspeichern: | ||
+ | <file python chassis_trap.py> | ||
+ | # | ||
+ | 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 = "/ | ||
+ | config_to_backup = "/ | ||
+ | scp_target_user = " | ||
+ | scp_host = " | ||
+ | scp_path = "/ | ||
+ | |||
+ | # Get system name | ||
+ | system_name = os.uname()[1].replace(" | ||
+ | |||
+ | # Uncomment during early stage of development | ||
+ | # | ||
+ | |||
+ | # 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: | ||
+ | except getopt.GetoptError as err: | ||
+ | print(err) | ||
+ | print(" | ||
+ | sys.exit(2) | ||
+ | traptype = " | ||
+ | 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 == " | ||
+ | traptype = a | ||
+ | elif o == " | ||
+ | trapdata = a | ||
+ | |||
+ | # | ||
+ | # | ||
+ | |||
+ | # | ||
+ | |||
+ | trapdetail = json.loads(trapdata) | ||
+ | |||
+ | # | ||
+ | |||
+ | if trapdetail[" | ||
+ | # This type of trap is sent when write memory flash-synchro finished | ||
+ | # | ||
+ | # When the "write memory flash-synchro" | ||
+ | if " | ||
+ | system_date = subprocess.check_output([" | ||
+ | system_time = subprocess.check_output([" | ||
+ | timestamp = system_date + " | ||
+ | os.system(" | ||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | **5. Mit " | ||
+ | < | ||
+ | Switch-> event-action trap chassisTrapsAlert script / | ||
+ | </ | ||
+ | |||
+ | **6. Testen:** | ||
+ | < | ||
+ | Switch-> write memory flash-synchro | ||
+ | </ | ||
+ | |||
+ | **Ausgabe auf der Switch-Konsole: | ||
+ | < | ||
+ | {' | ||
+ | |||
+ | Wed Sep 9 18:16:07 : ChassisSupervisor MipMgr INFO message: | ||
+ | +++ Copy running to certified succeeded | ||
+ | {' | ||
+ | Please wait... | ||
+ | Executing: program / | ||
+ | Sending file modes: C0644 4312 vcboot.cfg | ||
+ | Sink: C0644 4312 vcboot.cfg | ||
+ | Process finished! | ||
+ | </ | ||
===== Fehleranalyse ===== | ===== Fehleranalyse ===== | ||
event-action-python-aos-r8.1599656964.txt.gz · Zuletzt geändert: 2024/06/09 10:29 (Externe Bearbeitung)