【发布时间】:2013-12-05 06:54:59
【问题描述】:
我正在使用 Ansible 将配置推送到一些瞻博网络设备上。为了开始,我正在尝试从official demo here. 调整事实收集剧本我已修改主机文件以使用我的实际瞻博网络设备之一。 Ansible 似乎知道所有模块库的位置,但由于某种原因,它抛出了一个似乎没有文档的错误:Netconf::OpenError
除了在我自己的主机上使用主机文件外,我还在 tasks/nc_check.yml 中更改了端口 22,而不是端口 830。这是因为(据我所知),我可以使用的所有东西都可以进入交换机是 SSH(端口 22)
Juniper 模块都是用 Ruby 编写的。以下是我安装的所有依赖项的版本:
junos-ez-stdlib (0.1.2)
mini_portile (0.5.2)
net-scp (1.1.2)
net-ssh (2.7.0)
netconf (0.3.1)
nokogiri (1.6.0)
serialport (1.2.3)
以下是运行演示提供的相同剧本的输出。我的问题是:
- 似乎是什么导致了 Netconf::OpenError 错误?
-
我应该期望在瞻博网络交换机上为 Netconf 使用不同的端口吗?我会在瞻博网络配置中查看什么以了解要使用的端口? (EX4200 和 EX4500)
ansible-playbook junos/get_junos_facts.yml -i hosts -vvv
播放 [显示 Junos Facts,确保使用 -v] ****************
任务:[检查设备的 NETCONF 可达性]**************** EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-1384993979.41-2345029032433 && chmod a+rx $HOME/.ansible/tmp/ansible -1384993979.41-2345029032433 && echo $HOME/.ansible/tmp/ansible-1384993979.41-2345029032433'] REMOTE_MODULE wait_for host="10.113.7.002" port=22 timeout="1" 将 /tmp/tmpwhWU6X 放到 /home/gateway/.ansible/tmp/ansible-1384993979.41-2345029032433/wait_for 执行 ['/bin/sh', '-c', '/usr/bin/python /home/gateway/.ansible/tmp/ansible-1384993979.41-2345029032433/wait_for; rm -rf /home/gateway/.ansible/tmp/ansible-1384993979.41-2345029032433/ >/dev/null 2>&1'] ok: [10.113.7.002] => {"changed": false, "elapsed": 0, "item": "", "port": 22, "state": "started"}
任务:[联系目标以获取 Junos 事实]********** ******* EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-1384993979.48-89494360697375 && chmod a+rx $HOME/.ansible/tmp/ansible -1384993979.48-89494360697375 && echo $HOME/.ansible/tmp/ansible-1384993979.48-89494360697375'] REMOTE_MODULE junos_get_facts 主机=10.113.7.002 用户=viasat 将 /tmp/tmpB4jBDM 放到 /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts PUT /tmp/tmp28DLzs TO /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/arguments EXEC ['/bin/sh', '-c', '/usr/local/bin/ruby /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts /home/gateway/ .ansible/tmp/ansible-1384993979.48-89494360697375/arguments; rm -rf /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/ >/dev/null 2>&1'] 失败:[10.113.7.002] => {“失败”:真,“解析”:假} 无效输出为:/var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/transport.rb:49:in
open': Netconf::OpenError (Netconf::OpenError) from /var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/transport.rb:28:ininitialize' 来自 /var/lib/gems/1.9.1/gems/netconf-0.3.1/lib/net/netconf/ssh.rb:21:ininitialize' from /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts:46:innew' 来自 /home/gateway/.ansible/tmp/ansible-1384993979.48-89494360697375/junos_get_facts:46:in `'致命:所有主机都已失败 -- 正在中止
播放回顾 ************************************** 要重试,请使用:--limit @/home/gateway/get_junos_facts.retry
10.113.7.002 : ok=1 changed=0 unreachable=0 failed=1
【问题讨论】:
标签: ruby ansible ietf-netconf