playground:playground
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
playground:playground [2018/01/31 13:52] – benny-domroese | playground:playground [2018/01/31 19:10] (aktuell) – gelöscht benny | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== OmniVista2500 - CLI-Scripting mit JavaScript ====== | ||
- | Der folgende Tech-Tipp soll die Möglichkeiten des Scripting Moduls des OmniVista2500 aufzeigen. Neben der Nutzung der bekannten AOS CLI Syntax, besteht die Möglichkeit Kommandos in JavaScript einzubinden, | ||
- | |||
- | Das Modul kann zur Ausführung der Scripte neben den eingebauten System Variablen (z.B. GeräteTyp, IP-Adresse, MAC-Adresse) auch Benutzer Variablen zur Ausführung der Scripte heranziehen. Details zu den Möglichkeiten werden im OmniVista direkt unter dem Menüpunkt ?Help im CLI-Scripting Modul angeboten. | ||
- | |||
- | Folgend werden einige Beispiel Scripte kurz erklärt, die individuell angepasst werden können und den Konfigurationsaufwand in einigen Fällen bereits erheblich reduzieren können. | ||
- | |||
- | ===== Überprüfung von gleichartiger 802.1x Konfiguration ===== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Das folgende Script überprüft, | ||
- | |||
- | Anhand eines Regulären Ausdrucks wird hier mithilfe des Kommandos "show vlan port mobile" | ||
- | |||
- | Aus: | ||
- | < | ||
- | 802.1x 1/20 supp-polling retry 10 | ||
- | </ | ||
- | wird | ||
- | < | ||
- | 802.1x | ||
- | </ | ||
- | |||
- | Diese Konfiguration wird nun mit dem jeweilig nächsten Port verglichen und auf Differenzen untersucht (z.B. Port 1/2 mit Port 1/3).Dieser Vorgang wird für alle 802.1x Ports ausgeführt, | ||
- | |||
- | Anbei der JavaScript Code für diese Funtion. | ||
- | |||
- | :!: __Hinweis: | ||
- | < | ||
- | <js> | ||
- | /*@@Check if all 8021x Config is identically. Created by Benjamin Domroese, Januar 2018@@*/ | ||
- | cli.sendCmd(" | ||
- | cli.cliSleep(" | ||
- | var response = cli.lastResponse(); | ||
- | var pattern = new RegExp(" | ||
- | var noerrorfound = true; | ||
- | var okmsg = false; | ||
- | |||
- | if (pattern.test(response)==false) | ||
- | { | ||
- | cli.trace(" | ||
- | okmsg = true; | ||
- | }/*if*/ | ||
- | else | ||
- | { | ||
- | var ListOf8021xPorts = response.match(pattern);/ | ||
- | cli.sendCmd(" | ||
- | var aaa_config = cli.lastResponse(); | ||
- | |||
- | for (i=0; | ||
- | { | ||
- | var pattern_2 = new RegExp(" | ||
- | var first_port = aaa_config.match(pattern_2); | ||
- | var pattern_3 = new RegExp(" | ||
- | var second_port = aaa_config.match(pattern_3); | ||
- | |||
- | for (j=0; | ||
- | { | ||
- | var first_port_clean = first_port[j].replace(/ | ||
- | var second_port_clean = second_port[j].replace(/ | ||
- | |||
- | if (second_port_clean != first_port_clean) | ||
- | { | ||
- | cli.errorLog(" | ||
- | cli.errorLog(" | ||
- | cli.errorLog(" | ||
- | var noerrorfound = false; | ||
- | }/ | ||
- | |||
- | }/*for*/ | ||
- | }/*for*/ | ||
- | }/*else*/ | ||
- | if (noerrorfound==true && okmsg==false) | ||
- | { | ||
- | cli.trace(" | ||
- | }/*if*/ | ||
- | |||
- | </js> | ||
- | </ | ||
- | Anbei ein Screenshot der Ausgabe, die Hinweise auf unterschiedliche Konfigurationen bietet. | ||
- | {{ : |
playground/playground.1517406756.txt.gz · Zuletzt geändert: 2024/06/09 10:29 (Externe Bearbeitung)