EN ESTA PÁGINA
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 admite el uso de Ansible para administrar dispositivos Junos, 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 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 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
Los módulos de Ansible de Juniper Networks se distribuyen a través de la colección y el juniper.device
Juniper.junos
rol, que se alojan en Ansible Galaxy. Para usar los módulos de Juniper Networks en su manual, 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 los dispositivos Junos, ya que 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 colección también admiten connection: juniper.device.pyez
, que sigue ejecutando los módulos localmente en el nodo de control de Ansible, pero en su lugar 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. Debido a que YAML es sensible al espacio en blanco y la sangría es significativa, siempre debe usar espacios en lugar de tabulaciones al crear cuadernos. 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/user_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:
Ejecute el libro de estrategias
Para ejecutar el manual:
-
Ejecute el comando en el
ansible-playbook
nodo de control y proporcione la ruta del manual 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 Junos devices] *************** 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