Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在管理 Junos 设备时,排除 Ansible 连接错误

以下部分概述了使用 Ansible 管理 Junos 设备时可能遇到的连接错误。这些部分还介绍了每个错误的潜在原因和解决方案。

故障排除失败或无效的连接错误

问题

描述

在 Junos 设备上执行 juniper.device 模块期间,Ansible 控制节点会生成有关 SSH 连接失败或命令未知的错误。例如:

原因

当模块未在 Ansible 控制节点上本地运行时,可能会出现这些错误。

通常,Ansible 需要在托管节点上使用 Python,并且 Ansible 控制节点会将模块发送到该节点,在该节点执行,然后将其删除。瞻博网络模块不需要在 Junos 设备上使用 Python,因为它们使用 Junos PyEZ 和基于 NETCONF 的 Junos XML API 与设备连接。因此,要在 Junos 设备上执行操作,必须在安装了 Python 的 Ansible 控制节点上本地运行模块。如果 Ansible 尝试直接在 Junos 设备上执行模块,将生成错误。

溶液

要指示 Ansible 控制节点在本地运行 juniper.device 模块,请 connection: local 包含在 Ansible 操作指南中,或者在执行单个模块时包含 --connection local 命令行参数。例如:

对未知主机错误进行故障排除

问题

描述

在模块执行 juniper.device 期间,Ansible 控制节点会 ConnectUnknownHostError 生成错误。

原因

主机未在 Ansible 清单文件中定义,或者 Ansible 控制节点无法解析主机名。

直接或从操作指南执行 Ansible 模块时,必须在 Ansible 清单文件中定义模块参数或操作指南中引用的任何主机。清单文件的默认位置是 /etc/ansible/hosts。如果清单文件引用了主机名,则 Ansible 控制节点必须能够解析主机名。

溶液

更新 Ansible 清单文件以包含丢失的主机,并确保 DNS 解析正常工作。

有关 Ansible 清单文件的信息,请参阅 在管理 Junos 设备时了解 Ansible 清单文件 ,以及 https://www.ansible.com/ 上的官方 Ansible 文档。

拒绝连接错误疑难解答

问题

描述

在模块执行 juniper.device 期间,Ansible 控制节点会 ConnectRefusedError 生成错误。例如:

原因

拒绝连接错误的最可能原因是 Junos 设备上未启用 NETCONF over SSH。

要快速测试是否启用了 NETCONF,请验证执行 Ansible 模块的用户帐户是否可以成功启动与设备的 NETCONF 会话。

如果用户能够在默认的 NETCONF 端口 (830) 或设备上专门为 NETCONF 配置的端口上成功与设备建立 NETCONF 会话,则 NETCONF 将启用。否则,您必须在设备上启用 NETCONF over SSH。

溶液

在 Junos 设备上启用 NETCONF-over-SSH 服务。