我试图运行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 }}
以下是Juniper页面: http://junos-ansible-modules.readthedocs.io/en/1.3.1/junos_rollback.html
他们的示例语法有点奇怪。 host使用冒号,其余使用=符号。我试过混合两种,只使用一种或另一种。我一直都有错误。
我也确认我的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#junos
谢谢,
答案 0 :(得分:0)
junos_cli& junos_rollback是Galaxy的一部分,而不是核心模块。你可以找到它们 https://galaxy.ansible.com/Juniper/junos/
此处发布的内容是否包含您的剧本的全部内容?如果是,您还需要在您的剧本中定义其他项目,例如角色,连接,本地。例如
参考https://github.com/Juniper/ansible-junos-stdlib#example-playbook
```
---
- 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}}
----
----
```
答案 1 :(得分:0)
你在哪里保存了juniper.junos模块的内容?你可以发布你的剧本的内容和tree
命令的输出来查看你的文件结构吗?这可能有所帮助。
我有一个类似的问题,Ansible没有找到我的模块,我做的是将juniper.junos
文件夹复制到我的角色文件夹,然后在其中添加了一个tasks文件夹,从那里执行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