Creación y ejecución de libros de Ansible para administrar dispositivos que ejecutan Junos OS
RESUMEN Puede crear libros de Ansible que ejecutan módulos de Juniper Networks para realizar tareas operativas y de configuración en dispositivos que ejecutan Junos OS.
Juniper Networks admite el uso de Ansible para administrar dispositivos que ejecutan Junos OS, y Ansible y Juniper Networks proporcionan módulos de Ansible que le permiten realizar tareas operativas y de configuración en los dispositivos. En este tema se describe cómo crear un manual de Ansible sencillo para ejecutar módulos de Juniper Networks en dispositivos que ejecutan Junos OS.
Usted crea libros de Ansible para manejar tareas de administración más complejas. Los libros de jugadas constan de una o más jugadas, o grupos de tareas, que funcionan en un conjunto de hosts definidos. Los hosts de Ansible a los que se hace referencia en el manual de estrategias deben estar definidos en el archivo de inventario de Ansible, que de forma predeterminada reside en /etc/ansible/hosts. Cada reproducción debe especificar:
Los hosts en los que operan las tareas
La lista de tareas que se ejecutarán en cada host
Todas las variables o parámetros de módulo necesarios, incluidos los parámetros de autenticación, si estos no están definidos en otra parte
Los módulos de Juniper Networks Ansible se distribuyen a través de la juniper.device
colección y el Juniper.junos
rol, que se alojan en Ansible Galaxy. Para usar los módulos de Juniper Networks en su libro de estrategias, debe instalar la colección o el rol en el nodo de control de Ansible. Para obtener más información acerca de la colección, el rol y los módulos de Juniper Networks, consulte Descripción de Ansible para colecciones, roles y módulos de Junos OS.
Los módulos de Juniper Networks no requieren Python en dispositivos que ejecutan Junos OS, ya que utilizan Junos PyEZ y la API de Junos XML a través de NETCONF para interactuar con el dispositivo. Por lo tanto, para realizar operaciones en dispositivos que ejecutan Junos OS, 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 de estrategias. Cuando se utiliza connection: local
, Ansible establece una conexión independiente al host para cada tarea en la reproducción que requiere una conexión. Los juniper.device
módulos de recopilación también admiten connection: juniper.device.pyez
, que aún ejecuta los módulos localmente en el nodo de control de Ansible, pero en su lugar establece una conexión con el host que persiste durante la ejecución de todas las tareas en una reproducción.
De forma predeterminada, Ansible juega recopilando automáticamente datos del sistema desde el host remoto. Sin embargo, cuando se ejecutan las reproducciones localmente, Ansible recopila los hechos desde el nodo de control de Ansible en lugar del host remoto. Para evitar reunir datos para el nodo de control, incluya gather_facts: no
en el libro de estrategias.
Cuando ejecuta los módulos de Juniper Networks mediante una sesión NETCONF mediante SSH, que es el valor predeterminado, debe tener habilitado NETCONF en el dispositivo que ejecuta Junos OS. Recomendamos que cree una tarea simple en el libro de estrategias que prueba explícitamente si NETCONF está habilitado en cada dispositivo antes de ejecutar otras tareas. Si esta tarea falla en cualquier host, de forma predeterminada, Ansible no ejecuta las tareas restantes para este host. Sin esta prueba, es posible que reciba un error de conexión genérico durante la ejecución del manual de jugadas que no indique si este u otro problema es la causa de los errores.
Los libros de jugadas están expresados en YAML. Dado que YAML es sensible al espacio en blanco y la sangría es significativa, siempre debe usar espacios en lugar de pestañas al crear libros de jugadas. 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 cómo crear libros de jugadas de Ansible, consulte la documentación oficial de Ansible en https://docs.ansible.com/ansible/latest/user_guide/playbooks.html .
En las siguientes secciones se describen los pasos para crear y ejecutar un manual de estrategias simple que ejecute módulos de Ansible en un dispositivo que ejecuta Junos OS.
Creación de un manual de estrategias
Para crear un manual de estrategias sencillo para realizar tareas en dispositivos que ejecutan Junos OS:
Ejecución del libro de estrategias
Para ejecutar el manual:
Emita el
ansible-playbook
comando en el nodo de control y proporcione la ruta del libro de estrategias y las opciones deseadas.user@ansible-cn:~$ ansible-playbook junos-get-facts.yaml PLAY [Get Device Facts] *************************************************** TASK [Checking NETCONF connectivity] ************************************** ok: [dc1a.example.net] TASK [Retrieving information from devices running Junos OS] *************** ok: [dc1a.example.net] TASK [Print version] ****************************************************** ok: [dc1a.example.net] => { "junos.version": "19.4R1.10" } PLAY RECAP **************************************************************** dc1a.example.net : ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0