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 entrada a scripts de automatización cuando se ejecutan. La secuencia de comandos puede hacer referencia a esta entrada, que incluye información específica del dispositivo sobre el entorno de ejecución de la secuencia de comandos, como el nombre de host del dispositivo, el tipo de secuencia de comandos y el usuario que ejecuta la secuencia de comandos. Esta información es útil para crear scripts que respondan a una variedad de escenarios complejos.

Las secuencias de comandos 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 que las secuencias de comandos hagan referencia con mayor facilidad a un subconjunto de esta información. Las secuencias de comandos de Python pueden hacer referencia a esta información a través del junos.Junos_Context diccionario, que se debe importar en la secuencia de comandos.

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

Sintaxis de XSLT

Sintaxis SLAX

Python

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

La entrada de 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 la secuencia de comandos

Viernes, 10 de diciembre de 11:42:21 2010

$localtime-iso

Hora local, en formato ISO, cuando se ejecuta la secuencia de comandos

2010-12-10 11:42:21 PST

$product

Modelo del dispositivo local

m10i

$script

Nombre de archivo de la secuencia de comandos de ejecución

test.slax

$user

Nombre local del usuario que ejecuta la secuencia de comandos

Raíz

Los parámetros globales predefinidos se declaran en el archivo junos.xsl . No es necesario declarar estos parámetros en una secuencia de comandos para usarlos. Obtenga acceso al valor de los parámetros globales en una secuencia de comandos antefirándole el nombre del parámetro con el signo de dólar ($), como se muestra en el ejemplo siguiente:

Sintaxis SLAX:

Sintaxis DESD:

Variable global disponible en scripts de automatización

Las secuencias de comandos de confirmación, eventos y operación pueden acceder a la información específica del entorno que se proporciona a la secuencia de comandos tras la ejecución. Para acceder a esta información, las secuencias de comandos de Python deben importar y hacer referencia al junos.Junos_Context diccionario, y las secuencias de comandos SLAX y XSLT que importan el archivo junos.xsl pueden hacer referencia a la $junos-context variable $junos-context global y Junos_Context contener información idéntica, pero en un formato adecuado para el idioma de secuencia de comandos 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 todas las secuencias de comandos:

Además, la información específica de la secuencia de comandos está disponible según el tipo de script ejecutado. En el caso de las secuencias de comandos op, el <op-context> elemento también se incluye en el árbol de origen proporcionado a una secuencia de comandos op:

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

La tabla 2 identifica cada nodo del conjunto de nodos de variables $junos-context , proporciona una breve descripción del nodo y proporciona ejemplos de valores para los elementos que no se ingresan a una secuencia de comandos 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>

<chassis>

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 (transmisión matrix)psd, rsd (JCS)otros

<hostname>

Nombre de host del dispositivo local

Tokio

<local>

Hora local cuando se ejecuta la secuencia de comandos

Viernes, 10 de diciembre de 11:42:21 2010

<localtime-iso>

Hora local, en formato ISO, cuando se ejecuta la secuencia de comandos

2010-12-10 11:42:21 PST

<pid>

ID de proceso cscript

5257

<producto>

Modelo del dispositivo local

m10i

<re-master/>

Elemento vacío incluido si la secuencia de comandos se ejecuta en el motor de enrutamiento principal

 

nombre del motor de enrutamiento <>

Motor de enrutamiento en el que se ejecuta la secuencia de comandos

re0

tipo <script>

Tipo de secuencia de comandos que se ejecuta

Op

<>

TTY de la sesión del usuario

/dev/ttyp1

<junos-context> <user-context>

<clase>

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

Superusuario

nombre de <login>

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

Jsmith

<uid>

Número de ID de usuario del usuario que ejecuta la secuencia de comandos según se define en la configuración del dispositivo

2999

<usuario>

Nombre local del usuario que ejecuta la secuencia de comandos. Junos OS utiliza el nombre local para la autenticación. Puede diferir de la utilizada para la login-name autenticación AAA.

Raíz

<junos-context> <op-context>

(solo scripts operativos)

<via-url>

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

 

contexto de <junos> <como contexto>

(solo confirmar scripts)

<comprobado/>

Elemento vacío incluido cuando la confirmación se produce en el tiempo de arranque

 

<commit-check/>

Elemento vacío incluido cuando se realiza una commit check

 

<comodo>

Comentario del usuario con respecto a la confirmación

Comprometerse a solucionar el problema del reenvío

< confirmación/>

Elemento vacío incluido cuando se realiza una commit confirmed

 

<commit-sync/>

Elemento vacío incluido cuando se realiza una commit synchronize

 

<-path/>

Elemento que especifica la ubicación de la configuración pre-heredada del candidato de 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 las sesiones de configuración privadas, el valor del elemento es la ubicación de la base de datos de candidatos privada. Cuando el <get-configuration> database-path atributo se establece en este valor, la secuencia de comandos de confirmación recupera la configuración de candidato pre-heredada correspondiente.

 

La $junos-context variable es un conjunto de nodos. Por lo tanto, puede tener acceso a los elementos secundarios a lo largo de una secuencia de comandos incluyendo la expresión XPath adecuada. La siguiente secuencia de comandos de confirmación 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 da un valor de instalación y daemon un valor de gravedad de info. Para obtener más información, consulte syslog().

Las secuencias de comandos de Python deben importar el Junos_Context diccionario desde el junos módulo para acceder a la información de entorno proporcionada a las secuencias de comandos. Los nombres de las claves del Junos_Context diccionario son idénticos a los nombres de los nodos descritos en la $junos-context tabla 2. Nodos con elementos secundarios anidados en el junos-context nodo como user-context, op-contexty commit-context asignar 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:

En el siguiente resultado de ejemplo, se muestra el Junos_Context diccionario de una secuencia de comandos op que se ejecutó localmente. Tenga en cuenta que la entrada de secuencia de comandos op contiene la op-context clave, que en este caso está vacía.

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

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