Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Conectarse a dispositivos Junos mediante Ansible

RESUMEN Los módulos Ansible de Juniper Networks le permiten conectarse a dispositivos Junos mediante conexiones SSH, telnet o de consola serie.

Juniper Networks proporciona módulos de Ansible que puede usar para administrar dispositivos Junos. Los módulos de Juniper Networks se distribuyen a través de la juniper.device colección y el Juniper.junos rol, que se alojan en Ansible Galaxy. Los módulos pueden conectarse a dispositivos Junos mediante diferentes protocolos y conexiones de Ansible, que se describen en este documento.

Descripción general de los métodos de conexión

Los módulos Ansible de Juniper Networks le permiten conectarse a un dispositivo Junos mediante SSH, telnet o una conexión de consola serie. Debe utilizar una conexión de consola serie cuando el terminal o portátil esté conectado físicamente al puerto CONSOLE de un dispositivo Junos. Puede utilizar SSH o telnet para conectarse a la interfaz de administración del dispositivo o a un servidor de consola que esté conectado directamente al puerto CONSOLE del dispositivo.

Los dispositivos nuevos o a cero que tienen configuraciones predeterminadas de fábrica requieren acceso a través de una conexión de consola. Por lo tanto, puede usar Ansible para configurar inicialmente un dispositivo que aún no está configurado para el acceso remoto utilizando una conexión de consola serie cuando esté conectado directamente al dispositivo o utilizando telnet o SSH a través de un servidor de consola que esté conectado directamente al dispositivo.

De forma predeterminada, los módulos de Juniper Networks utilizan SSH para conectarse a un dispositivo. Para utilizar telnet o una conexión de consola serie, establezca el parámetro del mode módulo en el valor adecuado. Para telnet a un dispositivo, establezca el argumento en . mode "telnet" Para utilizar una conexión de consola serie, establezca el mode argumento igual a "serial". En la tabla 1 se resumen los modos de conexión, sus valores predeterminados para determinados parámetros, cualquier configuración de Junos OS necesaria y la versión en la Juniper.junos que se introdujo por primera vez la compatibilidad con ese modo de conexión. Los juniper.device módulos admiten todos los modos de conexión a partir de su lanzamiento inicial.

Tabla 1: Modos de conexión para los módulos Ansible de Juniper Networks

Modo de conexión

Valor del mode argumento

Puerto predeterminado

Configuración requerida de Junos OS

Primera versión compatible (Juniper.junos)

NETCONF sobre SSH (predeterminado)

830

[edit system services]
netconf {
    ssh;
}

1.0.0

Conexión de consola serie

serial

/dev/ttyUSB0

2.0.0

SSH a través de un servidor de consola

22

2.2.0

Telnet a dispositivo Junos

telnet

23

[edit system services]
telnet;

1.4.0

Puerto predeterminado agregado en 2.0.0

Telnet a través de un servidor de consola

telnet

23

1.4.0

Nota:

Antes de poder tener acceso a la interfaz de administración mediante telnet o NETCONF a través de SSH, primero debe habilitar el servicio adecuado en el nivel de [edit system services] jerarquía. Dado que telnet utiliza contraseñas de texto sin cifrar (lo que crea una posible vulnerabilidad de seguridad), se recomienda usar SSH.

Cuando ejecute los módulos de Juniper Networks para administrar un dispositivo Junos, el dispositivo remoto debe poder autenticar al usuario de Ansible con las credenciales adecuadas para el protocolo especificado. Para obtener más información, consulte Autenticar usuarios que ejecutan módulos de Ansible en dispositivos Junos.

Los módulos de Juniper Networks admiten diferentes conexiones de Ansible cuando se conectan a dispositivos Junos, incluidas las conexiones locales (por tarea) y las conexiones persistentes (por reproducción). La conexión de Ansible determina si Ansible establece una conexión independiente con el host para cada tarea de la reproducción o si establece una única conexión con un host que persiste en todas las tareas de la reproducción. Para obtener información acerca de cómo especificar la conexión de Ansible, consulte Descripción de las conexiones de Ansible locales y persistentes.

Descripción de las conexiones de Ansible locales y persistentes

Los módulos de Juniper Networks no requieren Python en dispositivos Junos porque usan Junos PyEZ y la API XML de Junos a través de NETCONF para interactuar con el dispositivo. Por lo tanto, para realizar operaciones en dispositivos Junos, debe ejecutar módulos localmente en el nodo de control de Ansible, donde está instalado Python. Puede ejecutar los módulos localmente incluyéndolos connection: local en el juego del manual. Cuando se utiliza connection: local, Ansible establece una conexión independiente con el host para cada tarea de la reproducción que realiza operaciones en el host.

Los juniper.device módulos de recopilación también admiten connection: juniper.device.pyez el establecimiento de una conexión persistente con un host. Cuando se utiliza una conexión persistente, Ansible sigue ejecutando los módulos localmente en el nodo de control, pero solo establece y mantiene una única conexión con cada host, que persiste en la ejecución de todas las tareas del juego. Establecer una conexión persistente con un host puede ser más eficiente para ejecutar varias tareas que establecer una conexión independiente con el host para cada tarea de la reproducción.

En la tabla 2 se resumen las conexiones de Ansible y los conjuntos de contenido que las admiten.

Tabla 2: Conexiones de Ansible admitidas por los módulos de Juniper Networks

Conexión de Ansible

Descripción

Compatibilidad con conjuntos de contenido

connection: local

Ejecute los módulos localmente en el nodo de control de Ansible, pero establezca una conexión independiente con un host para cada tarea de la reproducción que realice operaciones en el host.

juniper.devicecolección

Juniper.junosrol

connection: juniper.device.pyez

Ejecute los módulos localmente en el nodo de control de Ansible, pero establezca una conexión persistente con un host que persista en la ejecución de todas las tareas del juego.

juniper.devicecolección

Cuando se utiliza connection: local, Ansible establece una conexión independiente con un host para cada módulo, lo que significa que puede definir parámetros de conexión y autenticación específicos del módulo en la lista de argumentos del módulo. Por el contrario, cuando se utiliza connection: juniper.device.pyez, la conexión persiste en todas las tareas de la reproducción y, por lo tanto, debe definir los parámetros de conexión y autenticación globalmente para todos los módulos. Puede definir los parámetros en la vars: sección de una jugada, además de proporcionarlos a través de otros medios, por ejemplo, en un archivo de configuración SSH o en el archivo de inventario de Ansible. Para obtener más información, consulte Autenticar usuarios que ejecutan módulos de Ansible en dispositivos Junos.

El siguiente manual establece una conexión persistente con cada host que se usa para todas las tareas del juego. Las credenciales del usuario, que se almacenan en un archivo de almacén de Ansible, se definen en la sección de vars: la obra.

Conectarse a un dispositivo mediante SSH

Los módulos Ansible de Juniper Networks admiten el uso de SSH para conectarse a un dispositivo Junos. Puede establecer una sesión NETCONF a través de SSH en la interfaz de administración del dispositivo o puede establecer una conexión SSH con un servidor de consola que esté conectado directamente al puerto CONSOLE del dispositivo. El servidor SSH debe ser capaz de autenticar al usuario mediante mecanismos de autenticación SSH estándar, tal y como se describe en Autenticar usuarios que ejecutan módulos de Ansible en dispositivos Junos. Para establecer una sesión de NETCONF a través de SSH, también debe cumplir los requisitos descritos en Configurar Ansible para nodos gestionados de Junos OS.

Los módulos de Juniper Networks consultan automáticamente el archivo de configuración SSH predeterminado en ~/.ssh/config, si existe, a menos que el parámetro especifique un archivo de ssh_config configuración diferente. Cuando se utiliza SSH para conectarse a un dispositivo Junos o a un servidor de consola conectado al dispositivo, los módulos primero intentan la autenticación basada en clave pública SSH y, a continuación, prueban la autenticación basada en contraseña. Cuando se utiliza la autenticación basada en contraseña, la contraseña proporcionada se utiliza como contraseña del dispositivo. Cuando las claves SSH están en uso, la contraseña proporcionada se utiliza como frase de contraseña para desbloquear la clave privada. Si la clave privada SSH tiene una frase de contraseña vacía, no se requiere una contraseña. Sin embargo, no se recomiendan las claves privadas SSH con frases de contraseña vacías.

El siguiente manual establece una sesión de NETCONF a través de SSH con un dispositivo Junos y recupera los datos del dispositivo. El manual utiliza claves SSH en la ubicación predeterminada.

Los módulos Ansible de Juniper Networks también le permiten conectarse a un dispositivo Junos a través de una conexión SSH a un servidor de consola. En este caso, debe especificar las credenciales de inicio de sesión tanto para el dispositivo Junos como para el servidor de consola. Utilice los user parámetros y passwd para especificar las credenciales de inicio de sesión de Junos OS y los cs_user parámetros y cs_passwd para especificar las credenciales del servidor de consola. Cuando las claves SSH están en uso, cs_passwd es la frase de contraseña de la clave privada.

En el siguiente manual se solicitan las credenciales del usuario para el servidor de la consola y el dispositivo Junos. El módulo se autentica con el servidor de la consola y, a continuación, con el dispositivo Junos. Si la autenticación se realiza correctamente, el manual recupera los datos del dispositivo del nodo administrado e imprime la versión de Junos OS.

Los módulos de Juniper Networks consultan automáticamente el archivo de configuración predeterminado del cliente SSH en ~/.ssh/config, si existe. Puede usar un archivo de configuración SSH diferente incluyendo el ssh_config parámetro y especificando la ubicación del archivo de configuración. Por ejemplo:

Conectarse a un dispositivo mediante Telnet

Los módulos de Juniper Networks le permiten conectarse a un dispositivo Junos mediante telnet, que proporciona acceso sin cifrar al dispositivo de red. Puede telnet a la interfaz de administración del dispositivo o a un servidor de consola que esté conectado directamente al puerto CONSOLE del dispositivo. El acceso al dispositivo a través de un servidor de consola le permite configurar inicialmente un dispositivo nuevo o puesto a cero que aún no está configurado para el acceso remoto. Para telnet a la interfaz de administración, debe configurar el servicio Telnet en el nivel de [edit system services] jerarquía en todos los dispositivos que requieran acceso a la interfaz.

Para telnet al dispositivo remoto, establezca el mode parámetro en "telnet" y, opcionalmente, incluya el port parámetro para especificar un puerto. Cuando se establece mode en "telnet" pero se omite el port parámetro, el valor port predeterminado de 23. Para conexiones persistentes, defina mode y port en la vars: sección. Para las conexiones locales, puede definir los parámetros en la vars: sección o como argumentos de módulo.

El siguiente manual de estrategias se conecta a un dispositivo Junos mediante el puerto 7016, recupera los datos del dispositivo y los guarda en un archivo. El módulo utiliza el usuario predeterminado y solicita la contraseña de inicio de sesión.

Conectarse a un dispositivo mediante una conexión de consola serie

Los módulos de Juniper Networks le permiten conectarse a un dispositivo Junos mediante una conexión de consola serie, lo cual resulta útil cuando debe configurar inicialmente un dispositivo nuevo o a cero que aún no está configurado para el acceso remoto. Para utilizar este método de conexión, su terminal o portátil debe estar conectado físicamente al dispositivo Junos a través del puerto CONSOLE . Para obtener instrucciones detalladas sobre cómo conectarse al puerto CONSOLE en un dispositivo Junos, consulte la documentación del hardware de su dispositivo específico.

Para conectarse a un dispositivo Junos a través de una conexión de consola serie, establezca el parámetro del mode módulo en "serial", y opcionalmente incluya el port parámetro para especificar un puerto. Cuando se establece mode en "serial" pero se omite el port parámetro, el valor port predeterminado de /dev/ttyUSB0. Para conexiones persistentes, defina mode y port en la vars: sección. Para las conexiones locales, puede definir los parámetros en la vars: sección o como argumentos de módulo.

El siguiente manual se conecta a un dispositivo Junos a través del puerto CONSOLE y, a continuación, carga y confirma una configuración inicial. El módulo utiliza el usuario predeterminado y solicita la contraseña de inicio de sesión.