ansible.builtin.reboot 模块 – 重新启动机器

注意

此模块是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的模块名称 reboot,即使没有指定 集合关键字。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.reboot,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合冲突。

Ansible 2.7 中的新功能

概要

  • 重新启动机器,等待它关闭,然后重新启动并响应命令。

  • 对于 Windows 目标,请使用 ansible.windows.win_reboot 模块代替。

注意

此模块有一个相应的 操作插件

参数

参数

注释

boot_time_command

字符串

在 ansible-base 2.10 中添加

要运行的命令,它返回一个唯一的字符串,指示系统上次启动的时间。

将此设置为每次运行时输出不同的命令会导致任务失败。

默认值: "cat /proc/sys/kernel/random/boot_id"

connect_timeout

整数

在尝试再次连接之前,等待与受管主机成功连接的最大秒数。

如果未指定,则使用基础连接插件的默认设置。

msg

字符串

要向用户显示的重新启动之前的消息。

默认值: "Reboot initiated by Ansible"

post_reboot_delay

整数

在成功执行重新启动命令后,等待尝试验证系统成功重新启动的秒数。

如果您希望等待某些内容稳定,即使您的连接已经正常工作,这也很有用。

默认值: 0

pre_reboot_delay

整数

重新启动之前等待的秒数。作为参数传递给重新启动命令。

在 Linux、macOS 和 OpenBSD 上,这将转换为分钟并向下取整。如果小于 60,它将设置为 0。

在 Solaris 和 FreeBSD 上,这将是秒数。

默认值: 0

reboot_command

字符串

在 ansible-core 2.11 中添加

要运行的命令,用于重新启动系统,包括传递给该命令的任何参数。

可以是命令的绝对路径或只是命令名称。如果未给出命令的绝对路径,则将搜索目标系统上的 search_paths 以查找绝对路径。

这将导致 pre_reboot_delaypost_reboot_delaymsg 被忽略。

默认值: "[determined based on target OS]"

reboot_timeout

整数

等待机器重新启动并响应测试命令的最大秒数。

此超时分别针对重新启动验证和测试命令成功进行评估,因此模块的最大执行时间是此时间的两倍。

默认值: 600

search_paths

列表 / 元素=字符串

在 Ansible 2.8 中添加

在远程机器上搜索 shutdown 命令的路径。

搜索这些路径以查找 shutdown 命令。在远程节点上搜索 shutdown 命令时,忽略 PATH

默认值: ["/sbin", "/bin", "/usr/sbin", "/usr/bin", "/usr/local/sbin"]

test_command

字符串

在重新启动的主机上运行的命令,并期望从该命令获得成功结果以确定机器已准备好执行其他任务。

默认值: "whoami"

属性

属性

支持

描述

action

支持: 完整

表示它有一个相应的操作插件,因此选项的某些部分可以在控制器上执行

async

支持:

支持与 async 关键字一起使用

bypass_host_loop

支持:

强制执行一个“全局”任务,该任务不会按主机执行,这会绕过按主机进行的模板化和序列化,以及节流和其他循环考虑因素

条件将按使用 run_once 的方式工作,使用的变量将来自第一个可用的主机

此操作在锁步策略之外无法正常工作

check_mode

支持: 完整

可以在 check_mode 中运行并返回更改状态预测,而无需修改目标,如果不受支持,则操作将被跳过。

diff_mode

支持:

将在 diff 模式下返回有关发生了什么变化(或可能在 check_mode 中需要更改)的详细信息

platform

平台: posix

可以针对其进行操作的目标操作系统/系列

注意

注意

  • 在远程节点上搜索 shutdown 命令时,忽略 PATH。如果默认路径不起作用,请使用 search_paths 指定要搜索的位置。

另请参阅

另请参阅

ansible.windows.win_reboot

有关 ansible.windows.win_reboot 模块的官方文档。

示例

- name: Unconditionally reboot the machine with all defaults
  ansible.builtin.reboot:

- name: Reboot a slow machine that might have lots of updates to apply
  ansible.builtin.reboot:
    reboot_timeout: 3600

- name: Reboot a machine with shutdown command in unusual place
  ansible.builtin.reboot:
    search_paths:
     - '/lib/molly-guard'

- name: Reboot machine using a custom reboot command
  ansible.builtin.reboot:
    reboot_command: launchctl reboot userspace
    boot_time_command: uptime | cut -d ' ' -f 5

- name: Reboot machine and send a message
  ansible.builtin.reboot:
    msg: "Rebooting machine in 5 seconds"

返回值

常见的返回值已在 此处 文档化,以下是此模块独有的字段

描述

elapsed

整数

等待系统重新启动所花费的秒数。

返回: 始终

示例: 23

rebooted

布尔值

如果机器已重新启动,则为真

返回: 始终

示例: true

作者

  • Matt Davis (@nitzmahone)

  • Sam Doran (@samdoran)