Script para el cambio masivo de atributos de interfaces.
Detalles:
Script creado para un cliente
Nombre: if_bulk_edit.pl
Version: 1.0.0
Script Disponible como adjunto en el ticket: Support-5886
Descripción:
Este script tiene 2 funciones:
1. Permite se genere un listado de atributos pre-definidos de todas las interfaces de todos los nodos. Estos atributos son: ifDescr, Description,display_name,collect,event,threshold,setlimits,ifSpeedIn y ifSpeedOut. Estos atributos son exportados en formato CSV. Para luego ser editados en una hoja de cálculo de manera sencilla.
Para generar el CSV se debe utilizar el script de la siguiente manera:
$ if_bulk_edit.pl act=list file=myfile.csv
El argumento "file" acepta rutas completas de la locación del archivo a generar.
2. Permite se "importe" un archivo CSV con el mismo formato al generado anteriormente para aplicar cambios a las interfaces listadas en ese archivo.
Para hacer los cambios en las interfaces usando el archivo CSV se debe utilizar el script de la siguiente manera:
$ if_bulk_edit.pl act=change file=myfile.csv save=true
Se aplicara un update
IMPORTANTE:
Se debe tener en cuenta que el script corre en modo "simulación" si no se utiliza el argumento: save=true.
Se recomienda usar el script primero en modo "simulación" para evaluar si el script hará los cambios esperados.
Una vez se haya comprobado que los cambio son los deseados, se debe volver a ejecutar, esta vez utilizando el argumento save=true.
OPCIONES ADICIONALES
De manera opcional, se pueden utilizar los siguientes argumentos:
print=true (Mostrar la salida del archivo CSV generado por el script, solo cuando se utiliza act=list).
debug=true (Mostrar información adicional para facilitar el debug del script).
Ejm.
$ if_bulk_edit.pl act=list file=myfile.csv print=true debug=true
$ if_bulk_edit.pl act=change file=myfile.csv save=true debug=true
Muestra del formato del archivo CSV generado
- El CSV tiene en la primera línea, el encabezado o titulo del los atributos.
- Los valores son separados por comillas simple, esto es para evitar problemas de compatibilidad con espacios u otros caracteres.
- Los valores no presentes o en la interface o donde se quiera utilizar el valor por default de la interface se llenara con 'null'
- El script hace validaciones sobre los datos ingresados, sin embargo, se recomienda hacer una verificación manual sobre los cambios realizados.
'node','ifDescr','Description','display_name','collect','event','threshold','setlimits','ifSpeedIn','ifSpeedOut' 'ASGARD','FastEthernet0/0','Opmantek LAN','null','true','true','true','off','null','null' 'ASGARD','Tunnel100','Connection to Melbourne Lab','null','true','true','true','off','null','null' 'ASGARD','Dialer1194','The Monkey Jumps and Eats Bananas','null','false','false','false','off','null','null' 'ASGARD','FastEthernet0/1','WAN','null','true','true','true','off','null','null' 'ASGARD','Serial0/0/0','null','null','false','false','false','off','null','null' 'ASGARD','Null0','null','null','false','false','false','off','null','null' 'ASGARD','Loopback0','Peering LoopBack (make a change)','null','false','false','false','off','null','null' 'ASGARD','Tunnel0','Hurricane Electric IPv6 Tunnel Broker','null','true','true','true','off','null','null' 'ASGARD','Tunnel42','Connection to other locations','null','true','true','true','off','null','null' 'ASGARD','Tunnel99','Generate a config change on 16 Jan','null','false','false','false','off','null','null' 'crash-n-burn','lo','null','null','false','false','false','off','null','null' 'crash-n-burn','eth0','null','null','true','true','true','off','null','null' 'deb-n-burn','lo','null','null','false','false','false','off','null','null' 'deb-n-burn','eth0','null','null','true','true','true','off','null','null' 'demo','lo','null','null','false','false','false','off','null','null' 'demo','eth0','null','null','true','true','true','off','null','null' 'demo','tun0','null','null','false','false','false','off','null','null' 'eight','lo','null','null','false','false','false','off','null','null' 'eight','eth0','null','null','true','true','true','off','null','null' 'eris','vmnic1','Device vmnic1 at 05:00.0 e1000','null','true','true','true','off','null','null' 'eris','vmnic0','Device vmnic0 at 01:00.0 ne1000','null','true','true','true','off','null','null' 'eris','Management Network','Link Aggregation Management Network on switch: vSwitch0 load balancing algorithm: source port id hash','null','true','true','true','off','null','null' 'eris','vSwitch0','Traditional Virtual VMware switch: vSwitch0','null','true','true','true','off','null','null' 'eris','vmk0','Virtual interface: vmk0 on vswitch vSwitch0 portgroup: Management Network','null','true','true','true','off','null','null'