Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Parámetros y variables globales en scripts de automatización de Junos OS

Junos OS proporciona automáticamente información a los scripts de automatización cuando se ejecutan. El script puede hacer referencia a esta entrada, que incluye información específica del dispositivo sobre el entorno de ejecución del script, como el nombre de host del dispositivo, el tipo de script y el usuario que ejecuta el script. Esta información es útil para crear scripts que respondan a una variedad de escenarios complejos.

Los scripts SLAX y XSLT que importan el archivo junos.xsl pueden hacer referencia a esta información mediante la $junos-context variable global, que es un conjunto de nodos. El archivo de importación junos.xsl también declara varios parámetros globales predefinidos que permiten a los scripts hacer referencia más fácilmente a un subconjunto de esta información. Los scripts de Python pueden hacer referencia a esta información a través del junos.Junos_Context diccionario, que debe importarse al script.

Para utilizar los parámetros predefinidos o la variable global en scripts SLAX y XSLT, debe importar el archivo junos.xsl incluyendo la <xsl:import> etiqueta en la declaración de hoja de estilos de un script XSLT o incluyendo la import instrucción en un script SLAX y especificando la ubicación del archivo junos.xsl como se muestra en el siguiente código de ejemplo:

Sintaxis XSLT

Sintaxis de SLAX

Pitón

Para hacer referencia a la información en scripts de Python, importe el Junos_Context diccionario.

La entrada del script se describe en detalle en las siguientes secciones:

Parámetros globales disponibles en scripts SLAX y XSLT

Hay varios parámetros globales predefinidos disponibles para su uso en scripts de automatización SLAX y XSLT que importan el archivo junos.xsl . Los parámetros proporcionan información sobre el entorno de Junos OS. En la tabla 1 se describen los argumentos integrados.

Tabla 1: Parámetros predefinidos disponibles en scripts SLAX y XSLT

Nombre

Descripción

Ejemplo

$hostname

Nombre de host del dispositivo local

Tokio

$localtime

Hora local cuando se ejecuta el script

Fri dic 10 11:42:21 2010

$localtime-ISO

Hora local, en formato ISO, cuando se ejecuta el script

2010-12-10 11:42:21 PST

$product

Modelo del dispositivo local

M10i

$script

Nombre de archivo del script en ejecución

test.slax

$user

Nombre local del usuario que ejecuta el script

raíz

Los parámetros globales predefinidos se declaran en el archivo junos.xsl . No es necesario declarar estos parámetros en un script para poder utilizarlos. Acceda al valor de los parámetros globales en un script anteponiendo el nombre del parámetro con el signo de dólar ($), como se muestra en el ejemplo siguiente:

Sintaxis de SLAX:

Sintaxis XSLT:

Variable global disponible en scripts de automatización

Los scripts de confirmación, evento y operación pueden acceder a información de entorno específica que se proporciona al script tras la ejecución. Para acceder a esta información, los scripts de Python deben importar y hacer referencia al diccionario, y los junos.Junos_Context scripts SLAX y XSLT que importan el archivo junos.xsl pueden hacer referencia a la $junos-context variable global. $junos-context y Junos_Context contienen información idéntica pero en un formato adecuado para el lenguaje de script respectivo.

La $junos-context variable es un conjunto de nodos que contiene el <junos-context> nodo y la siguiente jerarquía, que es común e incrustada en el árbol de origen de todos los scripts:

Además, la información específica del script está disponible dependiendo del tipo de script ejecutado. Para los scripts op, el <op-context> elemento también se incluye en el árbol de origen proporcionado a un script op:

Para los scripts de confirmación, el <commit-context> elemento también se incluye en el árbol de origen proporcionado a un script de confirmación:

La Tabla 2 identifica cada nodo de la $junos-context variable node-set, proporciona una breve descripción del nodo y da ejemplos de valores para cualquier elemento que no se ingrese en un script como una etiqueta vacía.

Tabla 2: Variable global $junos contexto disponible para scripts SLAX y XSLT

Nodo principal

Nodo

Descripción

Contenido de ejemplo

<junos-contexto>

<chasis>

Especifica si la secuencia de comandos se ejecuta en un componente de una matriz de enrutamiento, el dominio del sistema raíz (RSD) o un dominio de sistema protegido (PSD)

scc, lcc (matriz TX)psd, rsd (JCS)otros

<nombre de host>

Nombre de host del dispositivo local

Tokio

<hora local>

Hora local cuando se ejecuta el script

Fri dic 10 11:42:21 2010

<localtime-iso>

Hora local, en formato ISO, cuando se ejecuta el script

2010-12-10 11:42:21 PST

<pid>

ID de proceso cscript

5257

<producto>

Modelo del dispositivo local

M10i

<remaster/>

Elemento vacío incluido si el script se ejecuta en el motor de enrutamiento principal

 

<nombre-motor-de-enrutamiento>

Motor de enrutamiento en el que se ejecuta el script

re0

<tipo de script>

Tipo de script que se está ejecutando

Op

<tty>

TTY de la sesión del usuario

/dev/ttyp1

<junos-context> <user-context>

<nombre-clase>

Clase de inicio de sesión del usuario que ejecuta el script

superusuario

<nombre de inicio de sesión>

Nombre de inicio de sesión del usuario que ejecuta el script. Para el acceso AAA , este es el nombre de usuario de RADIUS/TACACS.

jsmith

<uid>

Número de ID de usuario del usuario que ejecuta el script tal como se define en la configuración del dispositivo

2999

<usuario>

Nombre local del usuario que ejecuta el script. Junos OS utiliza el nombre local para la autenticación. Puede diferir del utilizado para la login-name autenticación AAA.

raíz

<junos-contexto> <o-contexto>

(solo scripts op)

<via-url>

Elemento vacío incluido si el script de operación remota se ejecuta mediante el op url comando

 

<junos-context> <commit-context>

(solo comandos de confirmación)

<commit-boot/>

Elemento vacío incluido cuando la confirmación se produce en el momento del arranque

 

<commit-check/>

Elemento vacío incluido cuando se realiza un commit check

 

<comprometer-comentar>

Comentario del usuario sobre la confirmación

Confirmar para solucionar el problema de reenvío

<confirmar-confirmar/>

Elemento vacío incluido cuando se realiza un commit confirmed

 

<commit-sync/>

Elemento vacío incluido cuando se realiza un commit synchronize

 

<ruta de base de datos/>

Elemento que especifica la ubicación de la configuración del candidato a herencia previa a la sesión. Para las sesiones de configuración normales, el valor del elemento es la ubicación de la base de datos candidata normal. Para sesiones de configuración privadas, el valor del elemento es la ubicación de la base de datos privada de candidatos. Cuando el <get-configuration> database-path atributo se establece en este valor, el script commit recupera la configuración correspondiente del candidato previo a la herencia.

 

La $junos-context variable es un conjunto de nodos. Por lo tanto, puede tener acceso a los elementos secundarios a lo largo de un script incluyendo la expresión XPath adecuada. La siguiente secuencia de comandos de confirmación de SLAX escribe un mensaje en el archivo de registro del sistema si la confirmación se realiza durante el arranque inicial. Al mensaje se le asigna un valor de instalación de daemon y un valor de gravedad de info. Para obtener más información, consulte syslog().

Los scripts de Python deben importar el Junos_Context diccionario desde el junos módulo para acceder a la información del entorno proporcionada a los scripts. Los nombres de las claves en el diccionario son idénticos a los nombres de los $junos-context nodos descritos en la Junos_Context Tabla 2. Nodos con elementos secundarios que están anidados bajo el junos-context nodo, como user-context, op-contexty commit-context se asignan a elementos en Junos_Context, donde la clave es el nombre del nodo y el valor es un diccionario de los elementos secundarios del nodo. Por ejemplo:

El siguiente resultado de ejemplo muestra el Junos_Context diccionario de un script op que se ejecutó localmente. Tenga en cuenta que la entrada del script op contiene la op-context clave, que en este escenario está vacía.

El siguiente resultado de ejemplo muestra el Junos_Context diccionario de un script de confirmación que se ejecutó durante una commit check operación. Tenga en cuenta que la entrada del script de confirmación contiene la commit-context clave.

Para acceder a valores individuales en el diccionario, especifique el nombre de la clave. Por ejemplo: