Exécutez le script Python à partir de Cisco Memorandum_EEM

Un script effrayant qui ressuscite comme un zombie, peu importe le nombre de fois que vous fermez

Voir Cisco Memorandum _ config input with Python pour les paramètres de base pour exécuter des scripts Python sur IOS-XE.

Chemin de placement du script

Chemin: / flash / ファイル:eem_script.py Entrez guesthell pour créer ou transférer des fichiers

isp-sw#guestshell
[guestshell@guestshell ~]$ 
[guestshell@guestshell ~]$ cd /flash/
[guestshell@guestshell flash]$ vi eem_script.py 

Comportement du script

Le contenu que le IF du Loopback 55 est "no shut" et le statut IF est affiché avec "sh ip int brief". Cette fois, le déclencheur de l'exécution du script est spécifié par l'applet EEM.

eem_script.py


import sys
from cli import cli,clip,configure,configurep, execute, executep
intf= sys.argv[1:]
intf = ''.join(intf[0])

print ('This script is going to unshut interface %s and then print show ip interface brief'%intf)

if intf == 'loopback55':
        configurep(["interface loopback55","no shutdown","end"])
else :
        cmd='int %s,no shut ,end' % intf
configurep(cmd.split(','))
executep('show ip interface brief')

Comment démarrer le script manuellement

Vous pouvez également exécuter le script manuellement en mode EXEC ainsi que depuis l'applet EEM

isp-sw#guestshell run python /flash/eem_script.py loop55
This script is going to unshut interface loop55 and then print show ip interface brief
Line 1 SUCCESS: int loop55
Line 2 SUCCESS: no shut 
Line 3 SUCCESS: end
Interface              IP-Address      OK? Method Status                Protocol
Vlan1                  unassigned      YES NVRAM  administratively down down    
---réduction---
Loopback13             10.13.13.13     YES manual up                    up      
Loopback55             10.55.55.55     YES TFTP   up                    up      

Création d'applet EEM

En mode réglage Contenu pour exécuter le script à adminUP avec le syslog d'admindown comme déclencheur

isp-sw(config)#event manager applet intshut
isp-sw(config-applet)# event syslog pattern "Interface Loopback55, changed state to administratively down"
isp-sw(config-applet)# action 0.0 cli command "en"
isp-sw(config-applet)# action 1.0 cli command "guestshell run python /flash/eem_script.py loop55"
isp-sw(config-applet)#end

Spécifiez le chemin du script sur la configuration

En mode réglage Spécifiez le chemin de placement

isp-sw(config)#event manager directory user policy "flash:/"

Vérification de l'état de démarrage EEM

En mode EXEC S'affiche si enregistré normalement

isp-sw#sh event manager policy registered 
No.  Class     Type    Event Type          Trap  Time Registered           Name
1    applet    user    syslog              Off   Thu Mar 28 16:37:52 2020  intshut
 pattern {Interface Loopback55, changed state to administratively down}
 maxrun 20.000
 action 0.0 cli command "en"
 action 1.0 cli command "guestshell run python /flash/eem_script.py loop55"

Essayez de vous arrêter manuellement

Entrez la commande d'arrêt en mode de réglage, sortez le journal vers le terminal avec ter mon et vérifiez le fonctionnement. Il est automatiquement UP après l'arrêt du journal.

isp-sw(config-if)#shutdown 
isp-sw(config-if)#
Mar 28 16:56:22.428 JST: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback55, changed state to down
Mar 28 16:56:22.428 JST: %LINK-5-CHANGED: Interface Loopback55, changed state to administratively down
isp-sw(config-if)#
Mar 28 16:56:29.880 JST: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback55, changed state to up
isp-sw(config-if)#
Mar 28 16:56:29.880 JST: %LINK-3-UPDOWN: Interface Loopback55, changed state to up
isp-sw(config-if)#

Consultez l'historique des événements

En mode EXEC Il fonctionne normalement par EEM avec succès

isp-sw#sh event manager history events 
No.  Job Id Proc Status   Time of Event            Event Type        Name
1    1      Actv success  Thu Mar28 16:36:19 2020  syslog            applet: intshut 
2    2      Actv success  Thu Mar28 16:43:43 2020  syslog            applet: intshut 
3    3      Actv success  Thu Mar28 16:56:22 2020  syslog            applet: intshut 

Modèle et version confirmés

Modèle: Catalyst 3850 Ver:Cisco IOS XE 16.06.05 Everest


Lien de référence

Programmability Configuration Guide, Cisco IOS XE Everest 16.6.x

Recommended Posts

Exécutez le script Python à partir de Cisco Memorandum_EEM
Exécutez des scripts Python de manière synchrone à partir de C #
Exécutez Python à partir d'Excel
Exécutez Aprili depuis Python sur Orange
Détection d'erreur Python exécutée à partir de Powershell
Exécutez Ansible à partir de Python à l'aide de l'API
Vérifier les modules installés à partir du script Python
Exécutez Cloud Dataflow (Python) depuis AppEngine
sql à sql
MeCab de Python
Exécuter des scripts Python à partir d'applications C # GUI
Exécutez des scripts Python à partir d'Excel (en utilisant xlwings)
Remarque pour oct2py appelant le script Octave depuis Python
Utilisez Thingsspeak de Python
Touchez MySQL depuis Python 3
Exécutez Python à partir d'Excel VBA avec xlwings et un supplément de tutoriel
Exécutez Python avec VBA
Exploitez Filemaker depuis Python
Utiliser fluentd de python
Exécutez prepDE.py avec python3
Changements de Python 2 à Python 3.0
Python depuis ou import
Utilisez MySQL depuis Python
Installer Python à partir de la source
Exécuter des commandes depuis Python
Exécutez Blender avec python
Faites fonctionner le neutron de Python!
Utiliser MySQL depuis Python
Importez des classes dans des fichiers jar directement à partir d'un script Python
Faire fonctionner LXC depuis Python
Manipuler riak depuis python
Forcer Python depuis Fortran
Utilisez BigQuery depuis Python.
Exécutez BigQuery à partir de Lambda
Exécuter la commande depuis Python
Tutoriel Cloud Run (python)
Profilage rapide des scripts Python
Utilisez mecab-ipadic-neologd de Python
Exécutez iperf avec python
Comment exécuter un programme Python à partir d'un script shell
Deep Python appris de DEAP
Exécutez Openpose sur Python (Windows)
Mémorandum Cisco _ configuration d'entrée avec Python
Exécutez python avec PyCharm (Windows)
Fonctionnalités de grammaire ajoutées à partir de Python3.6
Flirter de PHP à Python
Exécutez Python avec CloudFlash (arm926ej-s)
Exécuter des tâches automatisées en Python
Importer dynamiquement des scripts en Python
Exécuter des commandes shell en Python
Exécuter Python unittest en parallèle
OCR à partir de PDF en Python
Utiliser MySQL depuis Anaconda (python)
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Étude de Python Hour4: orientée objet ②
Interroger Athena depuis Lambda Python
Accéder à Oracle DB depuis Python
Démarrer / arrêter GCE à partir de python
Exécutez le CGI de Python sur CORESERVER