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

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

Juniper Networks proporciona 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 Ansible sencillo para ejecutar módulos de Juniper Networks en dispositivos Junos.

Puede crear manuales de estrategia de Ansible para gestionar tareas de administración más complejas. Los cuadernos de estrategias consisten en una o más jugadas, o grupos de tareas, que operan en un conjunto de hosts definidos. Los hosts de Ansible a los que se hace referencia en el manual de estrategias deben definirse en el archivo de inventario de Ansible, que de forma predeterminada reside en /etc/ansible/hosts.

Cada jugada de libro de jugadas debe especificar:

  • Los hosts en los que operan las tareas

  • La lista de tareas a ejecutar en cada host

  • Cualquier variable o parámetro de módulo requerido, incluidos los parámetros de autenticación, si no están definidos en otro lugar

Un cuaderno de estrategias 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 el 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 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 requiera una conexión. Los juniper.device módulos de recopilación también admiten connection: juniper.device.pyezarchivos . Este tipo de conexión sigue ejecutando los módulos localmente en el nodo de control de Ansible, pero establece una conexión con el host que persiste en la ejecución de todas las tareas de una reproducción.

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 datos para el nodo de control, inclúyalos gather_facts: no en el manual.

Cuando ejecute los módulos de Juniper Networks mediante una sesión NETCONF a través de SSH, que es la opción predeterminada, debe tener NETCONF habilitada en el dispositivo Junos. Le recomendamos que cree una tarea sencilla en el manual que pruebe explícitamente si NETCONF está habilitada en cada dispositivo antes de ejecutar otras tareas. Si se produce un error en esta tarea para cualquier 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 manual que no indica si este u otro problema es la causa de algún error.

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

En las siguientes secciones se describen los pasos para crear y ejecutar un manual sencillo que ejecute módulos de Ansible en un dispositivo Junos.

Crear un cuaderno de estrategias

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

  1. En su editor favorito, cree un nuevo archivo 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 dos puntos de los hosts o grupos de hosts en los que operarán los módulos, o especifique all para indicar todos los hosts en el archivo de inventario.

    Todos los hosts o grupos a los que se haga referencia en el manual deben definirse en el archivo de inventario de Ansible.

  5. Indique a Ansible que ejecute las tareas de la reproducción localmente en el nodo de control de Ansible donde está instalado Python porque no hay ningún requisito para Python en dispositivos Junos.
    • Incluye connection: local para ejecutar tareas localmente, pero establecer una conexión independiente con el host para cada tarea de la reproducción que requiera una conexión.

    • Incluye connection: juniper.device.pyez para ejecutar tareas localmente, pero establecer una conexión persistente con el host que persista en la ejecución de todas las tareas de la reproducción. Este tipo de conexión solo es compatible con los módulos de juniper.device recopilación.

    Los pasos restantes utilizan connection: local. Para utilizar los módulos de juniper.device colección con una conexión persistente, actualice el cuaderno de estrategias final para que utilice connection: juniper.device.pyez.

  6. (Opcional) Incluya gather_facts: no para evitar recopilar datos para el host de destino, que para las conexiones locales es el nodo de control de Ansible.
  7. (Opcional) Haga referencia a la juniper.device colección.

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

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

  8. Defina una sección de tareas e incluya una o más tareas como elementos de lista.
  9. (Opcional) Como comprobación adicional, cree una tarea para verificar la conectividad de NETCONF para cada dispositivo Junos.
  10. Cree tareas que utilicen 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 existentes en la ubicación predeterminada y no se proporcionan explícitamente las credenciales para el facts módulo en el manual.

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

Ejecute el libro de estrategias

Para ejecutar el manual:

  • Ejecute el ansible-playbook comando en el nodo de control y proporcione la ruta del manual y las opciones deseadas.