本页内容
 

在管理 Junos 设备时排除 Ansible 收集和模块错误

以下部分讨论了使用 juniper.device Ansible 集合管理运行 Junos OS 的设备和运行 Junos OS Evolved 的设备时可能遇到的错误。

问题

描述

在执行 Ansible 操作指南期间,控制节点会生成错误,提示无法解析 juniper.device 模块或 junipernetworks.junos 模块,或者任务中未检测到任何操作。例如:

原因

Ansible 控制节点无法找到juniper.device集合和关联的模块。从版本 2.0.0 开始juniper.device,除了原始juniper.device模块外,该集合还包括模块junipernetworks.junos。

解决方案

该 juniper.device 合集托管在 Ansible Galaxy 网站上。为了使用集合中的模块,您必须在 Ansible 控制节点上安装集合,并在 playbook 中引用它。

要在 Ansible 控制节点上安装 juniper.device 集合,请执行命令 ansible-galaxy collection install 并指定 juniper.device。

注意:

如果未在默认位置安装集合,则可能需要在 Ansible 设置中定义集合的路径。有关安装集合和指定路径的更多信息,请参阅 Ansible 官方文档。

若要使用集合中的juniper.device模块,请在执行模块时引用完全限定的集合名称。还必须为您使用的模块集定义适当的连接和网络操作系统变量。您可以在不同位置定义变量,例如,在清单文件中、主机或组变量文件中、在行动手册中或作为命令行参数。有关juniper.device模块集的更多信息,请参阅了解适用于 Junos OS 的 Ansible 集合和模块。

以下示例 playbook 引用给定的清单文件并执行该 juniper.device.facts 模块。

如果您使用的 junipernetworks.junos 是合并集合 juniper.device 中的模块,并且您的 playbook 仍然引用 junipernetworks.junos 命名空间:

  • 在 playbook 中,更新要使用的 juniper.device完全限定集合名称。

  • 在清单文件中,设置为 ansible_network_os juniper.device.junos。

以下操作指南引用给定的清单文件并执行该 juniper.device.junos_facts 模块。

注意:要继续使用引用junipernetworks.junos命名空间的 playbook,可以同时安装 和juniper.devicejunipernetworks.junos集合。但是,您仍需要更新清单文件中的 Ansible 网络操作系统变量。