Ansible - Невозможно запустить определенные модули JUNOS
Я пытаюсь запустить модули Ansible junos_cli и junos_rollback и получаю следующую ошибку:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
The error appears to have been in '/home/quake/network-ansible/roles/junos-rollback/tasks/main.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
---
- name: I've made a huge mistake
^ here
Это роль в вопросе:
---
- name: I've made a huge mistake
junos_rollback:
host={{ inventory_hostname }}
user=ansible
comment={{ comment }}
confirm={{ confirm }}
rollback={{ rollback }}
logfile={{ playbook_dir }}/library/logs/rollback.log
diffs_file={{ playbook_dir }}/configs/{{ inventory_hostname }}
Вот страница можжевельника: http://junos-ansible-modules.readthedocs.io/en/1.3.1/junos_rollback.html
Синтаксис их примера немного странный. хост использует двоеточие, в то время как остальные используют знаки =. Я пытался смешать оба и только с использованием одного или другого. Я продолжаю получать ошибки.
Я также подтвердил, что моя версия junos-eznc выше, чем 1.2.2 (у меня есть 2.0.1)
Я мог использовать junos_cli раньше, я не знаю, произошло ли несовпадение версий. В официальной документации Ansible нет упоминаний о junos_cli или junos_rollback. Возможно, они больше не поддерживаются?
http://docs.ansible.com/ansible/list_of_network_modules.html
Спасибо,
2 ответа
junos_cli & junos_rollback являются частью Galaxy, а не основными модулями. Вы можете найти их на https://galaxy.ansible.com/Juniper/junos/
Содержит ли контент, размещенный здесь, весь контент вашей пьесы? Если да, Вам нужно определить и другие элементы в своей книге игр, такие как роли, связи, локальные. Например
см. https://github.com/Juniper/ansible-junos-stdlib
`` `
---
- name: rollback example
hosts: all
roles:
- Juniper.junos
connection: local
gather_facts: no
tasks:
- name: I've made a huge mistake
junos_rollback:
host = {{inventory_hostname}}
----
----
`` `
Где вы сохранили содержимое модулей juniper.junos? Можете ли вы опубликовать содержание вашей пьесы и вывод tree
Команда, чтобы увидеть вашу файловую структуру? Это могло бы помочь.
У меня была похожая проблема, когда Ansible не находил мои модули, и я скопировал juniper.junos
папку в папку моих ролей, а затем добавил в нее папку задач для выполнения main.yaml оттуда.
Примерно так:/Users/macuared/Ansible_projects/roles/Juniper.junos/tasks
---
- name: "TEST 1 - Gather Facts"
junos_get_facts:
host: "{{ inventory_hostname}}"
user: "uuuuu"
passwd: "yyyyyy"
savedir: "/Users/macuared/Ansible_projects/Ouput/Facts"
ignore_errors: True
register: junos
- name: Checking Device Version
debug: msg="{{ junos.facts.serialnumber }}"
Кроме того, я бы добавил "" к строковым значениям в вашем YAML. Что-то вроде этого:
---
- name: I've made a huge mistake
junos_rollback:
host="{{ inventory_hostname }}"
user=ansible
comment="{{ comment }}"
confirm={{ confirm }}
rollback={{ rollback }}
logfile="{{ playbook_dir }}/library/logs/rollback.log"
diffs_file="{{ playbook_dir }}/configs/{{ inventory_hostname }}"
Что касается этого, "я пытался смешать оба и только с использованием одного или другого. Я продолжаю получать ошибки".
Я использовал только двоеточие, и мой работает нормально, даже если в документации есть знаки =. Смотрите junos_get_facts