lundi 15 juin 2020

pysnmp - ajout d'une mibs au bon format

Si vous utilisez pysnmp avec Python, il faut mettre les mibs au bon format pour les utiliser simplement.

Si les mibs ne sont pas au format pysnmp, vous aurez l'erreur suivante:

[root@Supervision script_super]# ./script-python.py
Traceback (most recent call last):
  File "./script-python.py", line 17, in <module>
    lexicographicMode=False):
  File "build/bdist.linux-x86_64/egg/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 111, in getCmd
  File "build/bdist.linux-x86_64/egg/pysnmp/hlapi/asyncore/cmdgen.py", line 130, in getCmd
  File "build/bdist.linux-x86_64/egg/pysnmp/hlapi/varbinds.py", line 39, in makeVarBinds
  File "build/bdist.linux-x86_64/egg/pysnmp/smi/rfc1902.py", line 847, in resolveWithMib
  File "build/bdist.linux-x86_64/egg/pysnmp/smi/rfc1902.py", line 481, in resolveWithMib
  File "build/bdist.linux-x86_64/egg/pysnmp/smi/builder.py", line 419, in importSymbols
  File "build/bdist.linux-x86_64/egg/pysnmp/smi/builder.py", line 388, in loadModules
pysnmp.smi.error.MibNotFoundError: INTERFACEMIB compilation error(s): missingcaused by <class 'pysnmp.smi.error.MibNotFoundError'>: MIB file "INTERFACEMIB.py[co]" not found in search path (ZipMibSource('pysnmp/smi/mibs'), ZipMibSource('pysnmp/smi/mibs/instances'), DirMibSource('pysnmp_mibs'))caused by <type 'exceptions.IOError'>: [Errno 2] No suitable module found: 'INTERFACEMIB'
[root@Supervision script_super]#

Pour mettre les mibs au bon format, voici la commande:


[root@Supervision script_super]# /usr/bin/mibdump.py --destination-directory=/var/spool/openmanage/.pysnmp/mibs/ /var/spool/openmanage/.pysnmp/mibs/INTERFACES-MIB.mib
Source MIB repositories: /var/spool/openmanage/.pysnmp/mibs, file:///usr/share/snmp/mibs, http://mibs.snmplabs.com/asn1/@mib@
Borrow missing/failed MIBs from: http://mibs.snmplabs.com/pysnmp/notexts/@mib@
Existing/compiled MIB locations: pysnmp.smi.mibs, pysnmp_mibs
Compiled MIBs destination directory: /var/spool/openmanage/.pysnmp/mibs/
MIBs excluded from code generation: INET-ADDRESS-MIB, PYSNMP-USM-MIB, RFC-1212, RFC-1215, RFC1065-SMI, RFC1155-SMI, RFC1158-MIB, RFC1213-MIB, SNMP-FRAMEWORK-MIB, SNMP-TARGET-MIB, SNMPv2-CONF, SNMPv2-SMI, SNMPv2-TC, SNMPv2-TM, TRANSPORT-ADDRESS-MIB
MIBs to compile: INTERFACES-MIB
Destination format: pysnmp
Parser grammar cache directory: not used
Also compile all relevant MIBs: yes
Rebuild MIBs regardless of age: no
Dry run mode: no
Create/update MIBs: yes
Byte-compile Python modules: yes (optimization level no)
Ignore compilation errors: no
Generate OID->MIB index: no
Generate texts in MIBs: no
Keep original texts layout: no
Try various file names while searching for MIB module: yes
Created/updated MIBs:
Pre-compiled MIBs borrowed:
Up to date MIBs: INTERFACES-MIB, IANAifType-MIB, IF-MIB, INET-ADDRESS-MIB, SNMPv2-CONF, SNMPv2-MIB, SNMPv2-SMI, SNMPv2-TC
Missing source MIBs:
Ignored MIBs:
Failed MIBs:
[root@Supervision script_super]#

On vérifie que les fichiers .py et .pyc sont bien créés.

[root@Supervision script_super]# ls /var/spool/openmanage/.pysnmp/mibs/
INTERFACES-MIB.mib  INTERFACES-MIB.pyc       IANAifType-MIB.py   IF-MIB.py   SNMPv2-MIB.py   
INTERFACES-MIB.py   INTERFACEMIB.mib  IANAifType-MIB.pyc  IF-MIB.pyc  SNMPv2-MIB.pyc  


vendredi 17 avril 2020

Mémo pelican

Template d'article (markdown):


Métadata

Title: Le titre
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: la catégorie
Tags: 
Slug: my-super-post
Authors: 
Summary: 


Image:
![texte alt](/images/photo.jpg)
Liste à puce:
* puce 1
* puce2
Lien vers un contenu interne au site:
{filename}chemin/Vers/lefichier
Lien vers un contenu statique:
{static}chemin/Vers/lefichier


Pour utiliser le nom de fichier pour le titre: 
FILENAME_METADATA

Pour les pages statiques, créer un dossier pages dans le dossier content.

Fichier pelicanconf.py

Pour les autres contenus statiques comme les images, ajouter au fichier pelicanconf.py la directive suivantes:
STATIC_PATHS = ['images']


Pour déterminer l'url de l'article et le chemin d'enregistrement:
ARTICLE_URL = '{category}/{slug}.html'
PAGE_URL = '{category}/{slug}.html'
ARTICLE_SAVE_AS = '{category}/{slug}.html'
PAGE_SAVE_AS = '{category}/{slug}.html'


URL relative, toujours mettre false en prod
RELATIVE_URLS = False

CATEGORY_URL = 'category/{slug}.html'
CATEGORY_SAVE_AS = 'category/{slug}.html'

Si on ne veut pas qu'une page par défaut soit générée par exemple, la page auteur:
AUTHORS_SAVE_AS = ''

Les métadonnées par défaut:
DEFAULT_METADATA = {}









Comment ajouter une route statique sur une distribution Linux Ubuntu

Pour ajouter une route statique au démarrage d'Ubuntu, voici le fichier à modifier. Dans l'exemple on ajoute une route pour joindre ...