Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Ansible 停止、重新启动或关闭 Junos 设备

使用瞻博网络 Ansible 模块停止、重新启动或关闭 Junos 设备。

使用 Ansible 停止、重新启动或关机设备

瞻博网络提供了一个 Ansible 模块,您可以使用该模块停止、重新启动或关闭 Junos 设备。 表 1 概述了可用的模块。

表 1:用于停止、重新启动或关闭设备的模块

内容集

模块名称

juniper.device 收集

system

您可以使用该 juniper.device.system 模块请求在 Junos 设备上执行以下作。默认情况下,模块会立即执行请求的作,并在双路由引擎或虚拟机箱设置中的所有路由引擎上执行该作。

  • 系统立即停止、重新启动或关机

  • 具有可选延迟的停止、重新启动或关机作

  • 安排在特定日期和时间的停止、重新启动或关机作

system 模块需要一个参数 action,用于定义模块执行的作。 表 2 定义 action 了停止、重新启动或关闭设备所需的参数值,并提供了每个作的简要说明以及相应的 CLI 命令。有关 "zeroize" 该作的信息,请参阅 使用 Ansible 将 Junos 设备恢复到出厂默认配置设置

表 2:作参数值

参数值action

描述

等效的 CLI 命令

"halt"

正常关闭 Junos OS 软件,但保持系统电源

request system halt

"reboot"

重新启动 Junos OS 软件

request system reboot

"shutdown"

正常关闭 Junos OS 软件并关闭路由引擎

request system power-off

以下 Ansible作指南使用 with action: "reboot" 模块system立即重新启动指定清单组中主机上的所有路由引擎。

如何在指定时间延迟执行停止、重新启动或关机作

您可以将停止、重新启动或关机作延迟指定的分钟数。要添加延迟,请将可选 in_min 参数设置为系统在执行作之前应等待的分钟数。以下任务请求在 30 分钟内重新启动所有路由引擎:

您还可以安排在特定时间执行停止、重新启动或关机作。若要计划时间,请包括该 at 参数,该参数采用可通过以下方式之一指定的字符串:

  • now- 立即启动软件的停止、重新启动或关闭。

  • +minutes- 从现在起启动请求作的分钟数。

  • yymmddhhmm- 启动请求作的绝对时间,指定为年、月、日、小时和分钟。

  • hh:mm- 当天启动所请求作的绝对时间,以 24 小时制指定。

以下任务计划在当天的 22:30 关闭所有路由引擎的系统:

如何指定目标路由引擎

默认情况下, system 模块会在双路由引擎或虚拟机箱设置中的所有路由引擎上执行请求的作。您还可以指示模块仅在应用程序所连接的路由引擎上执行作,或者在所有路由引擎上执行作,但应用程序所连接的路由引擎除外。

要指定路由引擎,请使用 all_reother_re 参数。 表 3 汇总了 all_re 在特定路由引擎上执行请求的作所需的和 other_re 值。

表 3:指定路由引擎的参数

受影响的路由引擎

all_re 参数

other_re 参数

所有路由引擎(默认)

省略或设置为 true

只有连接的路由引擎

设置为 false

所有路由引擎(应用程序连接到的路由引擎除外)

设置为 true

要明确指示应在双路由引擎或虚拟机箱设置中的所有路由引擎上执行该作,请包含 all_re: true 默认参数。

若要仅对应用程序连接到的路由引擎执行请求的作,请包含该 all_re: false 参数。

若要对系统中除应用程序连接到的路由引擎之外的所有路由引擎执行请求的作,请包含该 other_re: true 参数。

如何重新启动或关闭 VM 主机

在具有支持 VM 主机的路由引擎的设备上,Junos OS 作为虚拟机 (VM) 运行,而不是基于 Linux 的主机(VM 主机)。该 system 模块支持该 vmhost 参数,该参数使您能够重新启动或关闭 VM 主机。

当包含 action: "reboot"vmhost: true 参数时,系统将通过执行 <request-vmhost-reboot> RPC(对 request vmhost reboot 应于作模式命令)在所有路由引擎上重新启动主机作系统和兼容的 Junos OS。

同样,当包含 action: "shutdown"vmhost: true 参数时,系统将通过执行 <request-vmhost-poweroff> RPC(对应 request vmhost power-off 于作模式命令)关闭所有路由引擎上的主机作系统和兼容的 Junos OS。

以下作指南将执行 VM 主机重新启动,这将重新启动主机作系统和来宾 Junos OS。

示例:使用 Ansible 重新启动 Junos 设备

juniper.device.system 模块允许您停止、重新启动或关闭 Junos 设备。此示例使用模块 system 重新启动 Junos 设备。

要求

此示例使用以下硬件和软件组件:

  • 运行 Ansible 2.17 或更高版本并安装集合的 juniper.device 配置管理服务器

  • 启用了 NETCONF 且用户帐户配置了适当权限的 Junos 设备

  • 为 Ansible 控制节点和 Junos 设备上的相应用户配置的 SSH 公钥/私钥对

  • 定义了所需主机的现有 Ansible 清单文件

概述

此示例提供了一个 Ansible作指南,该作指南使用该 juniper.device.system 模块重新启动 Junos 设备。模块 action 参数的值定义要在主机上执行的作。

从 playbook 调用模块时,建议您使用交互式提示来确认用户是否打算重新启动指定的设备。如果用户无意中运行了作指南,并且未进行检查,则可能会对需要受影响设备的任何网络产生不利影响。作为预防措施,此作指南使用交互式提示来验证用户是否打算重新启动设备,并要求用户在命令行上手动键入“yes”来执行模块。 Confirmation check 如果任务失败,Ansible 控制节点将跳过该设备播放中的其他任务。

本作指南包含一项 Check NETCONF connectivity 任务,该任务利用该 ansible.builtin.wait_for 模块尝试使用默认的 NETCONF 端口 830 与 Junos 设备建立 NETCONF 会话。如果控制节点在执行 playbook 期间未能与设备建立 NETCONF 会话,则它将跳过该设备的 play 中的其余任务。

如果确认和 NETCONF 检查成功,重新启动设备的任务将 system 执行模块。该 action 参数设置为值 "reboot",表示应重新启动软件。该 in_min: 2 参数指示模块在执行 reboot 命令之前等待指定的分钟数。这为任何用户注销系统提供了时间。

该任务将模块结果存储在变量中, result 并通知两个处理程序。在重新启动作启动后, pause_for_reboot 处理程序会等待指定的时间,以防止 wait_reboot 处理程序在重新启动之前错误地检测到设备处于联机状态。然后, wait_reboot 处理程序会尝试与设备建立会话,以验证设备在重新启动后是否重新联机。该 wait_time_after_reboot 变量定义控制节点尝试与设备重新连接的时间长度。

配置

创建并执行 Ansible 行动指南

分步过程

要创建使用该 system 模块重新启动 Junos 设备的作指南,请执行以下作:

  1. 包括 playbook 的样板和 this play,它在本地执行模块。

  2. 定义或导入任何必要的变量。

  3. 创建交互式提示,以防止用户在未事先了解其含义的情况下意外执行模块。

  4. 创建确认用户意图的任务。

  5. (选答)创建任务以验证 NETCONF 连接。

  6. 创建任务以在指定的分钟数后重新启动设备,然后通知处理程序。

  7. (选答)创建一个任务以打印响应。

  8. 创建重新启动后暂停的处理程序以及验证设备在重新启动后是否重新联机的处理程序。

    处理程序名称应与重新启动任务中引用的名称相同。

结果

在 Ansible 控制节点上,查看已完成的作指南。如果 playbook 未显示预期的代码,请重复此示例中的说明以更正 playbook。

执行作手册

程序

分步过程

要执行 playbook,请执行以下作:

  • 在控制节点上发出 ansible-playbook 命令,并提供作指南路径和所需的任何选项。

验证

验证重新启动

目的

验证 Junos 设备是否已成功重新启动。

行动

执行 playbook 时,请查看每个设备的任务输出 wait_reboot

意义

wait_reboot结果指示控制节点在重新启动后是否成功与设备建立了会话。如果结果指示成功,则设备处于联机状态。

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。

释放
描述
1.0.3
juniper.device 集合版本 1.0.3 开始,该 system 模块支持关闭 VM 主机。