Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

在管理 Junos 设备时排除 Ansible 身份验证错误

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

身份验证错误故障排除

问题

描述

在执行juniper.device集合中的juniper.device模块或junipernetworks.junos模块期间,Ansible 控制节点会生成ConnectAuthError错误或AuthenticationException身份验证失败的错误。例如:

原因

Junos 设备可能无法对用户进行身份验证,原因如下:

  • 用户在 Junos 设备上没有帐户。

  • 用户的帐户在 Junos 设备上配置了基于文本的密码,但在执行模块时密码错误或未为用户提供密码。

  • 用户在 Junos 设备上有一个配置了 SSH 密钥的帐户,但无法在设备或控制节点上访问 SSH 密钥。

解决方案

确保执行模块的用户在所有目标 Junos 设备上都有 Junos OS 登录帐户。帐户必须配置 SSH 公钥/私钥对或基于文本的密码。如果帐户使用 SSH 密钥,请验证用户是否可以访问密钥。

排除属性conn_type错误

问题

描述

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

原因

较旧的已弃用 Juniper.junos 模块支持使用 provider 字典来定义连接和身份验证参数,但模块 juniper.device 不支持使用 provider 字典。如果您引用 provider 字典,模块将生成上述错误。

解决方案

对于 juniper.device 模块(不包括 juniper.device.junos_* 模块),如果您在剧本中提供连接和身份验证参数,则必须在适合 Ansible 连接的位置定义参数。

  • 对于持久连接 (),connection: juniper.device.pyez请在部分 vars: 下定义参数。

  • 对于本地连接 (),connection: local请在部分下 vars: 定义参数或作为顶级模块参数。

以下 playbook 使用持久连接,并在 playbook 的 vars 部分中定义了身份验证参数。

以下操作指南使用本地连接,并将身份验证参数定义为模块参数。