Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解适用于 Junos OS 的 Ansible 集合、角色和模块

总结 瞻博网络提供了可用于管理 Junos 设备的 Ansible 模块。

了解用于管理 Junos 设备的 Ansible 集合、角色和模块

Ansible 是用于基础架构配置管理的 IT 自动化框架。您可以使用 Ansible 模块(离散的代码单元)在托管式节点上执行特定功能。您可以在远程主机上执行单个模块来执行临时任务,也可以通过 playbook 执行模块。

Ansible 和瞻博网络提供了可用于管理 Junos 设备的 Ansible 模块。瞻博网络 Ansible 模块通过托管在 Ansible Galaxy 存储库中的 Ansible 角色和集合进行分组和分发。 表 1 概述了可用于管理 Junos 设备的不同内容集。

表 1:用于管理 Junos 设备的 Ansible 内容集

内容集

描述

Ansible 发布

Ansible 核心模块

Ansible 基本安装中包含的 Ansible 模块。

在 Ansible 2.10 中,核心模块从基本安装移动到 Ansible 的 junipernetworks.junos 集合中。

Ansible 2.1 至 Ansible 2.9

juniper.device 收集

用于管理 Junos 设备的集合,瞻博网络作为开源项目提供和管理这些集合。

Ansible 2.10 及更高版本

Juniper.junos 作用

管理瞻博网络提供、维护和支持的 Junos 设备的角色。

此角色将被集合取代 juniper.device

Ansible 2.1 及更高版本

junipernetworks.junos 收集

用于管理 Junos 设备的集合,由 Ansible 提供、维护和支持。

Ansible 2.10 及更高版本

Ansible 角色是一组用于配置主机的任务和支持变量、文件、模板和模块。从 Ansible 2.10 开始,Ansible 支持 Ansible 内容集合,这是一种用于分发 Ansible 内容的格式,未包含在 Ansible 基本安装中。Ansible 集合可以包含更广泛的内容,包括模块、剧本、插件和角色。Ansible 集合也有自己的存储库,可以独立于 Ansible 基本安装进行开发和发布。

在 Ansible 2.9 及更低版本中,您可以使用瞻博网络 Juniper.junos 角色中提供的模块或使用作为 Ansible 基本安装的一部分提供的核心模块来管理 Junos 设备。从 Ansible 2.10 开始, Juniper.junos 角色和 Ansible 核心模块将被相应的集合取代。随着瞻博网络 juniper.device 集合的引入,角色中的 Juniper.junos 模块在集合中以新名称复制,从而保留与原始模块相同的功能和参数(参数除外 provider )。尽管该 Juniper.junos 角色可以与集合共存 juniper.device ,并将在更高版本中工作,但我们建议您使用该 juniper.device 集合,因为新功能只会添加到集合中。

如何在 Junos 设备上执行模块

要使用托管在 Ansible Galaxy 存储库中的集合和角色,必须先在控制节点上安装 Ansible,然后安装集合或角色。有关安装 juniper.device 集合或 Juniper.junos 角色的详细信息,请参阅 Ansible for Junos OS 服务器要求

Ansible 模块可以在托管式节点上执行操作。通常,Ansible 控制节点会将模块发送到受管节点,在托管式节点上执行模块,然后将其移除。在此方案中,受管节点必须能够执行模块。由于大多数 Ansible 模块都是用 Python 编写的,因此 Ansible 通常需要在托管式节点上使用 Python。

但是,集合中的瞻博网络模块 juniper.deviceJuniper.junos 角色不需要托管式节点上的 Python。与常规操作相反,您可以在 Ansible 控制节点上本地执行模块,模块使用 Junos PyEZ 和基于 NETCONF 的 Junos XML API 与托管式节点进行接口。您可以通过此执行方法使用 Ansible 管理任何受支持的 Junos 设备。 图 1 显示了 Ansible 控制节点与托管 Junos 设备之间的通信。

图 1:与 Junos 设备的 Ansible Communication with a Junos Device Ansible 通信

若要使用集合或Juniper.junos角色中的juniper.device模块,playbook 或命令必须:

  • 指定集合或角色 - 要指定集合或角色,请在播放中包含 collections or roles 键。或者,可以省 collections 略密钥,而是通过其完全限定的集合名称 (FQCN) 引用集合内容,这是推荐的方法。

  • 在控制节点上本地执行模块 — 要在本地运行 Ansible 模块,请将参数local定义为 connection ,例如,connection: local包含在操作指南中或包含在--connection local命令行中。

    注意:

    使用 connection: local时,Ansible 会为剧中每个需要连接的任务建立与设备的单独连接。 juniper.device 集合模块还支持使用 connection: juniper.device.pyez,它仍在本地执行模块,而是为重头戏中的所有任务与设备建立单个持久连接。

  • 提供适当的连接和身份验证信息以连接到受管设备 - 有关更多信息,请参阅:

您可以使用有权访问托管 Junos 设备的任何用户帐户执行 Ansible 模块。执行 Ansible 模块时,将强制执行 Junos OS 用户帐户访问权限,并为 Junos OS 用户帐户配置的类确定权限。因此,如果用户执行将配置更改加载到设备上的模块,则用户必须具有更改配置相关部分的权限。

以下 playbook 执行 juniper.device 集合的 facts 模块以检索设备事实并将其保存到文件中。该示例使用默认位置中的现有 SSH 密钥向设备进行身份验证,因此不会在 playbook 中显式提供凭据。

同样,以下剧本执行 Juniper.junos 角色的 juniper_junos_facts 模块以执行相同的操作。

您还可以在命令行上执行临时操作。以下命令执行 juniper.device 集合的 facts 模块,并从清单组 dc1 中的主机检索设备事实。

瞻博网络 juniper.device 集合

瞻博网络提供 juniper.device Ansible 内容集合,托管在 Ansible Galaxy 网站上,其中包含可用于管理 Junos 设备的 Ansible 模块。

表 2 概述了集合 juniper.device 中的模块。在集合的初始版本中,集合模块保留与角色中的 Juniper.junos 相应模块相同的功能和参数,但参数除外 provider ,集合模块不支持该参数。

有关模块的最新列表、文档和使用示例,请参阅 https://ansible-juniper-collection.readthedocs.io/en/latest/

表 2:瞻博网络设备收集模块

瞻博网络设备模块名称

描述

command

在 Junos 设备上执行 CLI 命令并将输出保存在本地。

config

管理 Junos 设备的配置。

facts

从远程主机检索特定于设备的信息,包括 Junos OS 版本、序列号和硬件型号。

jsnapy

从 Ansible 执行 Junos Snapshot Administrator in Python (JSNAPy) 测试。

ping

在 Junos 设备上执行 ping 命令。

pmtud

在 Junos 设备上执行路径 MTU 发现。

rpc

执行 Junos OS RPC。

software

安装 Junos OS 软件包并重新启动 Junos 设备。

system

在 Junos 设备上执行系统操作,包括重置、重新启动或关闭设备。

srx_cluster

为支持群集的 SRX 系列防火墙创建 SRX 系列机箱群集。

table

使用 Junos PyEZ 操作表和视图从 Junos 设备检索操作信息。

瞻博网络 Juniper.junos 角色

瞻博网络提供 Juniper.junos Ansible 角色,该角色托管在 Ansible Galaxy 网站上,其中包含使您能够管理 Junos 设备的 Ansible 模块。从 Ansible 2.10 开始, juniper.device 该集合将 Juniper.junos 取代该角色。集合中的模块与角色中的模块具有相同的功能和参数,但参数除外 provider 。尽管集合和角色可以在同一平台上共存,并且可以在更高版本中继续使用这些 Juniper.junos 模块,但我们建议您使用该 juniper.device 集合,因为新功能只会添加到集合中。

表 3 总结了该 Juniper.junos 角色中的模块。有关模块的最新列表、文档和使用示例,请参阅 https://junos-ansible-modules.readthedocs.io/en/latest/

注意:

从版本 2.0.0 开始 Juniper.junos ,该 Juniper.junos 角色包括一组增强的模块。每个新模块都会替换一个或多个现有模块的功能。增强的模块支持一组通用的连接和身份验证参数、使您能够指定与核心模块相同的连接和身份验证相关选项的别名,以及指定提供程序字典中的参数的功能。

表 3:Juniper.junos 角色模块

模块名称

描述

自版本 2.0.0 起已弃用的模块

juniper_junos_command

在 Junos 设备上执行 CLI 命令并将输出保存在本地。

junos_cli

juniper_junos_config

管理 Junos 设备的配置。

junos_commit

junos_get_config

junos_install_config

junos_rollback

juniper_junos_facts

从远程主机检索特定于设备的信息,包括 Junos OS 版本、序列号和硬件型号。

junos_get_facts

juniper_junos_jsnapy

从 Ansible 执行 Junos Snapshot Administrator in Python (JSNAPy) 测试。

junos_jsnapy

juniper_junos_ping

在 Junos 设备上执行 ping 命令。

junos_ping

juniper_junos_pmtud

在 Junos 设备上执行路径 MTU 发现。

junos_pmtud

juniper_junos_rpc

执行 Junos OS RPC。

junos_rpc

juniper_junos_software

安装 Junos OS 软件包并重新启动 Junos 设备。

junos_install_os

juniper_junos_system

在 Junos 设备上执行系统操作,包括重置、重新启动或关闭设备。

junos_shutdown

junos_zeroize

juniper_junos_srx_cluster

为支持群集的 SRX 系列防火墙创建 SRX 系列机箱群集。

junos_srx_cluster

juniper_junos_table

使用 Junos PyEZ 操作表和视图从 Junos 设备检索操作信息。

junos_get_table

版本历史记录表
释放
描述
2.0.0
从版本 2.0.0 开始 Juniper.junos ,该 Juniper.junos 角色包括一组增强的模块。