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

Comprenda cómo conectarse a dispositivos Junos cuando utilice el conjunto de juniper.device módulos de la colección de juniper.device Ansible.

Juniper Networks proporciona módulos de Ansible que puede usar para administrar dispositivos que ejecutan Junos OS y dispositivos que ejecutan Junos OS evolucionado. Los módulos de Juniper Networks se distribuyen a través de la juniper.device colección. La juniper.device colección incluye dos conjuntos de módulos:

Este documento describe cómo usar el conjunto de juniper.device módulos solo para conectarse a dispositivos Junos mediante diferentes protocolos y conexiones de Ansible. Para obtener información sobre el uso de los junipernetworks.junos módulos para conectarse a dispositivos Junos, consulte Uso de los módulos de Ansible juniper.device.junos_* para administrar dispositivos Junos.

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

Los juniper.device módulos le permiten conectarse a un dispositivo Junos mediante SSH, Telnet o una conexión de consola serie. Debe usar una conexión de consola serie cuando su terminal o computadora portátil esté conectada físicamente al puerto CONSOLE en un dispositivo Junos. Puede usar 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 ceroizados que tienen configuraciones predeterminadas de fábrica requieren acceso a través de una conexión de consola. Por lo tanto, puede utilizar Ansible para configurar inicialmente un dispositivo que aún no está configurado para el acceso remoto. Puede utilizar una conexión de consola serie cuando esté conectado directamente al dispositivo, o bien puede utilizar Telnet o SSH a través de un servidor de consola que esté conectado directamente al dispositivo.

De forma predeterminada, los juniper.device módulos usan SSH para conectarse a un dispositivo. Para utilizar Telnet o una conexión de consola serie, establezca el mode parámetro en el valor adecuado. Para telnet a un dispositivo, establezca el mode argumento en telnet. Para utilizar una conexión de consola serie, establezca el mode argumento en serial. La tabla 1 resume los modos de conexión, sus valores predeterminados para ciertos parámetros y cualquier configuración de Junos OS requerida. Los juniper.device módulos admiten todos los modos de conexión.

Tabla 1: Modos de conexión para el juniper.device Conjunto de módulos

Modo de conexión

Valor del mode argumento

Puerto predeterminado

Configuración necesaria de Junos OS

NETCONF a través de SSH (predeterminado)

830

[edit system services]
netconf {
    ssh;
}

Conexión de consola serie

serial

/dev/ttyUSB0

SSH a través de un servidor de consola

22

Telnet a dispositivo de Junos

telnet

23

[edit system services]
telnet;

Telnet a través de un servidor de consola

telnet

23

Nota:

Antes de poder acceder a la interfaz de administración mediante telnet o NETCONF a través de SSH, primero debe habilitar el servicio adecuado en el nivel jerárquico [edit system services] . Dado que telnet utiliza contraseñas de texto sin cifrar (lo que crea una posible vulnerabilidad de seguridad), le recomendamos que utilice SSH.

Cuando utilice los juniper.device módulos para administrar un dispositivo Junos, el dispositivo remoto debe ser capaz de autenticar al usuario de Ansible con las credenciales adecuadas para el protocolo especificado. Para obtener más información, consulte Autenticación de usuarios que ejecutan módulos de Ansible en dispositivos Junos.

Los juniper.device módulos 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 jugada o si establece una única conexión con un host que persiste en todas las tareas de la jugada. Para obtener más información sobre cómo especificar la conexión de Ansible, consulte Descripción de conexiones de Ansible locales y persistentes.

Descripción de las conexiones de Ansible locales y persistentes

Los juniper.device módulos no requieren Python en dispositivos Junos porque los módulos 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 los 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 playbook play. Cuando se utiliza connection: local, Ansible establece una conexión independiente con el host para cada tarea de la obra que realiza operaciones en el host.

Los juniper.device módulos también admiten connection: juniper.device.pyez el establecimiento de una conexión persistente con un host. Cuando se usa una conexión persistente, Ansible sigue ejecutando los módulos localmente en el nodo de control. Sin embargo, la conexión persistente establece y mantiene una única conexión con cada host, que persiste durante la ejecución de todas las tareas de la obra. Una conexión persistente puede ser más eficiente para ejecutar varias tareas que usar una conexión separada con el anfitrión para cada tarea de la obra.

En la tabla 2 se resumen las conexiones de Ansible para los módulos del conjunto de juniper.device módulos.

Tabla 2: Conexiones de Ansible compatibles con el juniper.device Conjunto de módulos

Conexión de Ansible

Descripción

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 obra que realice operaciones en el host.

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 durante la ejecución de todas las tareas del juego.

Puede definir parámetros de conexión y autenticación para conexiones locales y persistentes en el manual de estrategias. Las conexiones locales establecen una conexión independiente con un host para cada tarea. Por lo tanto, puede definir los parámetros de conexión y autenticación para conexiones locales en la sección de vars: reproducción y en la lista de argumentos de un módulo. Los argumentos del módulo tienen prioridad. Por el contrario, las conexiones persistentes tienen una única conexión para todas las tareas de la obra. Por lo tanto, debe definir los parámetros de conexión y autenticación para conexiones persistentes globalmente en la sección de vars: juego.

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

Conectarse a un dispositivo mediante SSH

Los juniper.device módulos 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. También 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 Autenticación de usuarios que ejecutan módulos de Ansible en dispositivos Junos. Para establecer una sesión NETCONF a través de SSH, también debe cumplir los requisitos descritos en Configurar Ansible para nodos administrados de Junos OS.

Los módulos consultan automáticamente el archivo de configuración SSH predeterminado en ~/.ssh/config, si existe. También puede incluir el ssh_config parámetro para especificar un archivo de configuración diferente.

Para conexiones SSH a un dispositivo Junos o a un servidor de consola conectado al dispositivo, los módulos primero prueban la autenticación basada en clave pública SSH y, luego, 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 se utilizan claves SSH, la contraseña proporcionada es la frase de contraseña para desbloquear la clave privada. No es necesario proporcionar una contraseña si carga la clave en un agente de claves SSH o si la clave privada SSH tiene una frase de contraseña vacía. Sin embargo, no recomendamos usar claves privadas SSH con frases de contraseña vacías.

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

Los módulos 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 la consola. Utilice los user parámetros y passwd para especificar las credenciales de inicio de sesión de Junos OS. Utilice los cs_user parámetros y cs_passwd para especificar las credenciales del servidor de consola. Cuando se usan claves SSH, cs_passwd es la frase de contraseña de la clave privada. Además, establezca el port argumento en el puerto TCP que se asigna al dispositivo TTY, si corresponde.

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 consola y, luego, con el dispositivo de 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 del cliente SSH predeterminado en ~/.ssh/config, si existe. Puede usar un archivo de configuración SSH diferente si incluye el ssh_config parámetro y especifica la ubicación del archivo de configuración. Por ejemplo:

Conectarse a un dispositivo mediante Telnet

Los juniper.device módulos le permiten conectarse a un dispositivo Junos mediante telnet, que proporciona acceso sin cifrar al dispositivo de red. Puede hacer 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 ceroizado 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 [edit system services] nivel de 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 pero se omite telnet el port parámetro, el valor predeterminado es port 23. Para conexiones persistentes, defina mode y port en la vars: sección. En el caso de las conexiones locales, puede definir los parámetros en la sección o como argumentos de vars: módulo.

El siguiente manual envía telnets a un dispositivo Junos mediante el puerto 7016, recupera los datos del dispositivo y los guarda en un archivo. En el manual se solicita el nombre de usuario y la contraseña.

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

Los juniper.device módulos 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 que aún no está configurado para el acceso remoto. Para utilizar este método de conexión, su terminal o computadora portátil deben estar conectados físicamente al dispositivo Junos a través del puerto CONSOLE . Para obtener instrucciones detalladas sobre cómo conectarse al puerto CONSOLE de 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 pero se omite serial el port parámetro, el valor predeterminado para port es /dev/ttyUSB0. Para conexiones persistentes, defina mode y port en la vars: sección. En el caso de las conexiones locales, puede definir los parámetros en la sección o como argumentos de vars: módulo.

El siguiente manual se conecta a un dispositivo Junos a través del puerto CONSOLE y, luego, carga y confirma una configuración inicial. En el manual se solicita el nombre de usuario y la contraseña.