Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción de las funciones de extensión en scripts de automatización de Junos OS

Junos OS proporciona herramientas de scripting de automatización, incluidas funciones de extensión y plantillas con nombre, que se pueden usar en scripts de confirmación, operación, evento y SNMP para realizar tareas de scripting más fácilmente en dispositivos que ejecutan Junos OS. Las bibliotecas proporcionan lógica, manipulación de datos, entrada y salida, y funciones de utilidad, y le permiten realizar operaciones que son difíciles o imposibles de realizar en XPath. En la Tabla 1 se resumen las funciones de extensión de Juniper.

Para usar las funciones de extensión, los scripts de automatización de Python deben importar el módulo, y los scripts SLAX y XSLT deben declarar el jcs URI de espacio de nombres apropiado en la declaración de hoja de estilos. Una función en el espacio de nombres se define en la http://xml.juniper.net/junos/commit-scripts/1.0 URI del espacio de nombres y una función en el espacio de nombres se define en el jcs slax URI del espacio de nombres http://xml.libslax.org/slax .

Las funciones que utilizan el espacio de nombres se admiten a partir de slax Junos OS versión 12.2. Los scripts que utilizan funciones de extensión independientes de Junos OS que existían en versiones anteriores en el espacio de nombres pueden utilizar el o el jcs jcs espacio de nombres a partir de slax Junos  OS versión 12.2. Sin embargo, para utilizar cualquiera de estas funciones en versiones anteriores de Junos OS, los scripts deben usar el URI del espacio de jcs nombres.

La instrucción de script version SLAX determina qué funciones se pueden utilizar en esa secuencia de comandos. Para utilizar una función que se introdujo en una versión específica de SLAX, el valor de la instrucción script debe ser igual o mayor que la versión en la que se introdujo la version función. Por ejemplo, las funciones introducidas en la versión 1.1 del lenguaje SLAX no se pueden utilizar en un script SLAX que tenga una instrucción "versión 1.0".

Nota:

Los scripts SLAX también pueden usar funciones adicionales de las bibliotecas de extensiones predeterminadas de libslax. Para obtener más información, consulte Bibliotecas de extensiones predeterminadas de libslax: bit, curl, db, os y xutil.

Los scripts de automatización de Python solo admiten un subconjunto de las funciones de extensión. Para muchas de las funciones no compatibles, puede utilizar bibliotecas estándar de Python para lograr la misma funcionalidad.

Tabla 1: Funciones de extensión para uso en scripts de automatización

Función

Espacios de nombres

Versión SLAX

Tipo

Descripción

Soporte en Python Scripts

base64-decode()

Slax

1.1

Manipulación de datos

Decodifique datos codificados en BASE64 y devuelva una cadena.

base64-encode()

Slax

1.1

Manipulación de datos

Codifique una cadena de datos en el formato de codificación BASE64.

break-lines()

JCS, SLAX

1.0

Manipulación de datos

Dividir un elemento simple en varios elementos, delimitados por nuevas líneas.

close()

Jcs

1.0

Utilidad

Cierre un controlador de conexión abierto anteriormente.

dampen()

JCS, SLAX

1.0

Utilidad

Impedir que la misma operación se ejecute repetidamente dentro de un script.

Y

document()

Slax

1.1

Control de entrada/salida

Leer datos de un archivo o URL y devolver una cadena.

emit_change()

Utilidad

Genere un cambio persistente o transitorio en la configuración en un script de confirmación.

Y

emit_error()

Control de entrada/salida

Genere un mensaje de error en la consola.

Y

emit_snmp_attributes()

Control de entrada/salida

Devuelve información para el objeto MIB solicitado desde un script SNMP.

Y

emit_warning()

Control de entrada/salida

Genere un mensaje de advertencia en la consola.

Y

empty()

JCS, SLAX

1.0

Lógica

Evalúe un conjunto de nodos o un argumento de cadena para determinar si es un valor vacío.

evaluate()

Slax

1.1

Control de entrada/salida

Evalúe una expresión de SLAX y devuelva el resultado.

execute()

Jcs

1.0

Utilidad

Ejecute una llamada a procedimiento remoto (RPC) en el contexto de un identificador de conexión especificado.

first-of()

JCS, SLAX

1.0

Lógica

Devolver el primer elemento no vacío (no nulo) de una lista, Si todos los objetos de la lista están vacíos, se devuelve la expresión predeterminada.

get-command()

JCS, SLAX

1.1

Control de entrada/salida

Solicite al usuario la entrada del comando y devuelva la entrada como una cadena.

get-hello()

Jcs

1.0

Utilidad

Devolver el ID de sesión y las capacidades del servidor NETCONF durante una sesión de NETCONF.

get-input() (XSLT/SLAX)

get_input() (Python)

JCS, SLAX

1.0

Control de entrada/salida

Invoque un indicador de CLI y espere la entrada del usuario. Si el script se ejecuta de forma no interactiva, la función devuelve un valor vacío. Esta función no se puede utilizar con scripts de eventos.

Y

get-protocol()

Jcs

1.0

Utilidad

Devuelve el protocolo de sesión asociado con el identificador de conexión.

get-secret() (XSLT/SLAX)

get_secret() (Pitón)

JCS, SLAX

1.0

Control de entrada/salida

Invoque un indicador de CLI y espere la entrada del usuario. La entrada no se repite al usuario.

Y

get_snmp_action()

Control de entrada/salida

Recupere el valor de acción pasado al script SNMP.

Y

get_snmp_oid()

Control de entrada/salida

Recupere el valor OID pasado al script SNMP.

Y

hostname()

Jcs

1.0

Utilidad

Devuelve el nombre de dominio completo asociado a una dirección IPv4 o IPv6 determinada, siempre que el servidor DNS esté configurado en el dispositivo.

Y

invoke()

Jcs

1.0

Utilidad

Invoque una RPC en un dispositivo local que ejecute Junos OS.

open()

Jcs

1.0

Utilidad

Devuelve un identificador de conexión que se puede usar para ejecutar RPC.

output()

JCS, SLAX

1.0

Control de entrada/salida

Genere texto de salida sin formato que se envía inmediatamente a la sesión de CLI.

Y

parse-ip()

Jcs

1.0

Manipulación de datos

Analice una dirección IPv4 o IPv6 y devuelva la dirección IP del host, la familia de protocolos, la longitud del prefijo, la dirección de red y la máscara de red.

Y

printf()

JCS, SLAX

1.0

Control de entrada/salida

Generar texto de salida con formato. La mayoría de los formatos estándar printf son compatibles, además de algunos formatos específicos de Junos OS. La función devuelve una cadena con formato, pero no la imprime cuando se llama.

Y

progress()

JCS, SLAX

1.0

Control de entrada/salida

Emita un mensaje de progreso que contenga el argumento único inmediatamente a la sesión de la CLI, siempre que se haya especificado el indicador cuando se invocó el detail script.

Y

regex()

JCS, SLAX

1.0

Manipulación de datos

Evalúe una expresión regular con respecto a un argumento de cadena determinado y devuelva las coincidencias.

set_routing_instance()

-

-

Utilidad

Programe el software de protocolo (TCP/UDP) para que utilice instancias de enrutamiento no predeterminadas.

Y

sleep()

JCS, SLAX

1.0

Utilidad

Haga que el script entre en reposo durante un tiempo especificado.

split()

JCS, SLAX

1.0

Manipulación de datos

Dividir una cadena en una matriz de subcadenas delimitadas por un patrón de expresión regular.

sysctl()

JCS, SLAX

1.0

Utilidad

Devolver el valor del valor especificado sysctl como una cadena o un entero.

Y

syslog()

JCS, SLAX

1.0

Control de entrada/salida

Registre los mensajes con la prioridad especificada en el archivo de registro del sistema.

Y

trace()

JCS, SLAX

1.0

Control de entrada/salida

Emita un mensaje de seguimiento, que se envía al archivo de seguimiento.

Y