ansible.windows.win_reboot 模块 – 重启 Windows 机器

注意

此模块是 ansible.windows 集合 (版本 2.5.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install ansible.windows

要在剧本中使用它,请指定: ansible.windows.win_reboot

概要

  • 无条件重启 Windows 机器,等待其关闭,然后重新启动并响应命令。

  • 对于非 Windows 目标,请改用 ansible.builtin.reboot 模块。

注意

此模块具有相应的 action 插件

参数

参数

注释

boot_time_command

字符串

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

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

默认值: "(Get-CimInstance -ClassName Win32_OperatingSystem -Property LastBootUpTime).LastBootUpTime.ToFileTime()"

connect_timeout

别名:connect_timeout_sec

浮点数

在尝试再次连接之前,等待单个成功的 WinRM 端点 TCP 连接的最长时间(秒)。

默认值: 5.0

msg

字符串

向用户显示的消息。

默认值: "Reboot initiated by Ansible"

post_reboot_delay

别名:post_reboot_delay_sec

浮点数

在重启命令成功后等待的秒数,然后尝试验证系统是否已成功重启。

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

默认值: 0.0

pre_reboot_delay

别名:pre_reboot_delay_sec

浮点数

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

最小版本为 2 秒,不能设置更低的值。

默认值: 2.0

reboot_timeout

别名:reboot_timeout_sec

浮点数

等待机器重新出现在网络上并响应测试命令的最长时间(秒)。

此超时分别针对重启验证和测试命令成功进行评估,因此最大时钟时间实际上是该值的兩倍。

默认值: 600.0

test_command

字符串

要期望成功的命令,以确定机器已准备好进行管理。

默认情况下,此测试命令是一个自定义命令,用于检测 Windows 登录屏幕何时启动并准备好接受凭据。使用自定义命令将替换此行为,只运行指定的命令。

备注

注意

另请参阅

另请参阅

ansible.builtin.reboot

重启机器。

示例

- name: Reboot the machine with all defaults
  ansible.windows.win_reboot:

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

# Install a Windows feature and reboot if necessary
- name: Install IIS Web-Server
  ansible.windows.win_feature:
    name: Web-Server
  register: iis_install

- name: Reboot when Web-Server feature requires it
  ansible.windows.win_reboot:
  when: iis_install.reboot_required

# One way to ensure the system is reliable, is to set WinRM to a delayed startup
- name: Ensure WinRM starts when the system has settled and is ready to work reliably
  ansible.windows.win_service:
    name: WinRM
    start_mode: delayed

# Additionally, you can add a delay before running the next task
- name: Reboot a machine that takes time to settle after being booted
  ansible.windows.win_reboot:
    post_reboot_delay: 120

# Or you can make win_reboot validate exactly what you need to work before running the next task
- name: Validate that the netlogon service has started, before running the next task
  ansible.windows.win_reboot:
    test_command: 'exit (Get-Service -Name Netlogon).Status -ne "Running"'

返回值

常见的返回值已在 此处 记录,以下是此模块独有的字段:

描述

elapsed

浮点数

等待系统重新启动所经过的秒数。

返回值:始终返回

示例: 23.2

rebooted

布尔值

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

返回值:始终返回

示例: true

作者

  • Matt Davis (@nitzmahone)