Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在管理在操作系统上运行的设备时,排除 Ansible 连接Junos 错误

以下各节概述了使用 Ansible 管理运行网络的设备时Junos OS。这些部分还介绍了每个错误的潜在原因和解决方案。

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

问题

描述

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

原因

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

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

解决 方案

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

排除未知主机错误

问题

描述

执行 或 juniper.device 模块时 Juniper.junos ,Ansible 控制节点会生成 ConnectUnknownHostError 错误。

原因

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

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

解决 方案

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

有关 Ansible 清单文件的信息,请参阅 了解管理运行 Junos OS 的设备时 Ansible 清单文件 ,以及 Ansible https://www.ansible.com/

排除拒发的连接错误

问题

描述

执行 或 juniper.device 模块时 Juniper.junos ,Ansible 控制节点会生成 ConnectRefusedError 错误。例如:

原因

拒绝连接错误的最可能原因是,在运行 SSH 的设备上未启用通过 SSH 的 NETCONF Junos OS。

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

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

解决 方案

在运行新设备的设备上启用 NETCONF-over-SSH Junos OS。