Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Crear y ejecutar manuales de Ansible para administrar dispositivos Junos

Puede crear manuales de estrategia de Ansible que ejecuten módulos de Juniper Networks para realizar tareas operativas y de configuración en dispositivos que ejecutan Junos OS y dispositivos que ejecutan Junos OS evolucionado.

Juniper Networks ofrece módulos de Ansible que le permiten realizar tareas operativas y de configuración en dispositivos Junos. En este tema, se describe cómo crear un manual de estrategia sencillo de Ansible para ejecutar los módulos de Juniper Networks en dispositivos Junos.

Descripción general del libro de jugadas

Puede crear manuales de estrategia de Ansible para gestionar tareas de gestión más complejas. Los libros de estrategia constan de una o más jugadas, o grupos de tareas, que funcionan en un conjunto de hosts definidos. Cada jugada del manual debe especificar:

  • Los hosts en los que operan las tareas

  • La lista de tareas que se deben ejecutar en cada host

  • Cualquier variable o parámetro de módulo necesario, incluidos los parámetros de autenticación, si no los ha definido en otra parte

Cualquier host de Ansible al que haga referencia un manual debe definirse en el archivo de inventario de Ansible. La ubicación predeterminada del archivo de inventario de Ansible es /etc/ansible/hosts.

Un manual ejecuta tareas en un host llamando a módulos. Los módulos de Ansible de Juniper Networks se distribuyen a través de la juniper.device colección, que está alojada en Ansible Galaxy. Para utilizar los módulos de Juniper Networks en su manual, debe instalar la colección en el nodo de control de Ansible. Para obtener más información acerca de la colección y los módulos, consulte Descripción de Ansible para colecciones y módulos de Junos OS.

Los módulos de Juniper Networks no requieren Python en dispositivos Junos porque usan la API XML de Junos y 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 definiendo la conexión de Ansible adecuada y los parámetros del sistema operativo de red. Para obtener información acerca de los parámetros y valores de conexión de los módulos de la juniper.device colección, consulte Cómo ejecutar módulos en dispositivos Junos.

De forma predeterminada, las reproducciones de Ansible recopilan automáticamente datos del sistema del host remoto. Sin embargo, cuando ejecuta las jugadas localmente, Ansible recopila los hechos del nodo de control de Ansible en lugar del host remoto. Para evitar recopilar hechos para el nodo de control, inclúyalo gather_facts: no en el manual de estrategias.

Cuando ejecute los módulos de Juniper Networks con una sesión de NETCONF a través de SSH, el dispositivo de Junos debe tener NETCONF habilitado. Le recomendamos que cree una tarea sencilla en el manual de estrategias que pruebe explícitamente si NETCONF está habilitado en cada dispositivo antes de ejecutar otras tareas. Si esta tarea falla para algún host, de forma predeterminada, Ansible no ejecuta las tareas restantes para este host. Sin esta prueba, es posible que obtenga un error de conexión genérico durante la ejecución del libro de estrategias que no indica si este problema u otro problema es la causa de los errores.

Los libros de estrategia se escriben en formato YAML. YAML es sensible a los espacios en blanco y la sangría es significativa. Por lo tanto, los libros de estrategias siempre deben usar espacios en lugar de pestañas. En YAML, los elementos precedidos por un guión (-) son elementos de lista y la key: value notación representa un hash. Para obtener información detallada sobre cómo crear manuales de estrategia de Ansible, consulte la documentación oficial de Ansible en https://docs.ansible.com/projects/ansible/latest/playbook_guide/playbooks.html.

Crear un manual de estrategias de Ansible

Antes de empezar:

  • Elija el conjunto de módulos que usará para administrar los dispositivos de Junos. La juniper.device colección incluye los juniper.device módulos originales y los junipernetworks.junos módulos.

  • Actualice el archivo de inventario con las variables de conexión de Ansible y del sistema operativo de red adecuadas para el conjunto de módulos, tal y como se describe en Descripción del archivo de inventario de Ansible al administrar dispositivos Junos.

Para crear un manual sencillo para realizar tareas en dispositivos Junos:

  1. En su editor favorito, cree un archivo nuevo con un nombre de libro de estrategias descriptivo que use la extensión de archivo .yaml .
  2. Incluya tres guiones para indicar el inicio del documento YAML.
  3. Proporcione un nombre descriptivo para la obra.
  4. Defina una lista delimitada por comas (o delimitada por dos puntos) de los hosts o grupos de hosts en los que funcionarán los módulos; especifique all para indicar todos los hosts en el archivo de inventario.

    El archivo de inventario de Ansible debe definir los hosts o grupos de hosts a los que se hace referencia en el manual de estrategias.

  5. (Opcional) Incluir gather_facts: no para evitar la recopilación de datos para el host de destino, que para las conexiones locales es el nodo de control de Ansible.
  6. (Opcional) Haga referencia a la colección.

    Puede definir la collections clave en el manual y, a continuación, hacer referencia solo al nombre del módulo en la tarea. Sin embargo, el método recomendado es omitir la clave y, en su lugar, hacer referencia al contenido de la collections colección por su nombre de colección completo (FQCN).

    En este ejemplo se omite la collections clave y se usa el nombre de colección completo.

  7. Defina una sección de tareas e incluya una o más tareas como elementos de lista.
  8. (Opcional) Como comprobación adicional de las sesiones de NETCONF a través de SSH, cree una tarea para verificar la conectividad de NETCONF para cada dispositivo Junos.
  9. Cree tareas que usen los módulos de Juniper Networks y proporcione los parámetros de conexión y autenticación necesarios.

    En este ejemplo, se utilizan claves SSH cargadas en un agente de claves SSH y no se proporcionan explícitamente credenciales para el facts módulo en el manual de estrategias.

  10. (Opcional) Defina tareas adicionales o jugadas adicionales según sea necesario.

Ejecute el manual

En el manual de este ejemplo, se utiliza el siguiente archivo de inventario de Ansible, que define la conexión como local.

Para ejecutar el manual de estrategias:

  • Emita el ansible-playbook comando en el nodo de control y proporcione la ruta del manual de estrategias y las opciones necesarias.