Solucionar errores de recopilación, rol y módulo de Ansible al administrar dispositivos Junos
Problema
Descripción
Durante la ejecución de un manual de estrategias de Ansible, el nodo de control genera un error que indica que no se encontró la colección o el rol, que no se detectó ninguna acción en la tarea o Juniper.junos
que no se pudo resolver el juniper.device
módulo. Por ejemplo:
ERROR! the role 'Juniper.junos' was not found in /usr/share/ansible/roles:/etc/ansible/roles ...
O
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
O
ERROR! couldn't resolve module/action 'facts'. This often indicates a misspelling, missing collection, or incorrect module path.
Causa
El nodo de control de Ansible no puede encontrar la juniper.device
colección ni el rol ni los Juniper.junos
módulos asociados.
Solución
La juniper.device
colección y Juniper.junos
el rol están alojados en el sitio web de Ansible Galaxy. Para utilizar los módulos de la colección o rol, debe instalar la colección o el rol en el nodo de control de Ansible y también hacer referencia a él en el manual.
Para instalar la juniper.device
colección en el nodo de control de Ansible, ejecute el ansible-galaxy collection install
comando y especifique juniper.device
.
user@ansible-cn:~$ sudo ansible-galaxy collection install juniper.device
Para instalar el rol en el nodo de control de Ansible, ejecute el Juniper.junos
ansible-galaxy install
comando y especifique Juniper.junos
.
user@ansible-cn:~$ sudo ansible-galaxy install Juniper.junos
Si no instala la colección o el rol en la ubicación predeterminada, es posible que deba definir la ruta a la misma en la configuración de Ansible. Para obtener más información sobre la instalación de colecciones y roles y la especificación de la ruta, consulte la documentación oficial de Ansible.
Para utilizar los módulos de recopilación, haga referencia al nombre completo de juniper.device
la colección cuando ejecute un módulo. Por ejemplo:
--- - name: Get Device Facts hosts: junos-all connection: local gather_facts: no tasks: - name: Get device facts juniper.device.facts: savedir: "{{ playbook_dir }}"
Para utilizar los módulos de Juniper.junos
rol, debe incluir el rol en el juego del manual. Por ejemplo:
--- - name: Get Device Facts hosts: junos-all connection: local gather_facts: no roles: - Juniper.junos tasks: - name: Get device facts juniper_junos_facts: savedir: "{{ playbook_dir }}"