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 插件。
参数
参数 |
注释 |
---|---|
运行的命令,返回一个唯一字符串,指示系统上次启动的时间。 将其设置为每次运行时输出不同的命令将导致任务失败。 默认值: |
|
在尝试再次连接之前,等待单个成功的 WinRM 端点 TCP 连接的最长时间(秒)。 默认值: |
|
向用户显示的消息。 默认值: |
|
在重启命令成功后等待的秒数,然后尝试验证系统是否已成功重启。 如果您希望等待某些内容稳定下来,即使您的连接已正常工作,这也很有用。 默认值: |
|
重启前等待的秒数。作为参数传递给重启命令。 最小版本为 默认值: |
|
等待机器重新出现在网络上并响应测试命令的最长时间(秒)。 此超时分别针对重启验证和测试命令成功进行评估,因此最大时钟时间实际上是该值的兩倍。 默认值: |
|
要期望成功的命令,以确定机器已准备好进行管理。 默认情况下,此测试命令是一个自定义命令,用于检测 Windows 登录屏幕何时启动并准备好接受凭据。使用自定义命令将替换此行为,只运行指定的命令。 |
备注
注意
如果系统上已计划关机,ansible.windows.win_reboot 将中止计划的关机并强制执行其自身的关机。
请注意,当 ansible.windows.win_reboot 返回时,Windows 系统可能尚未稳定,某些基本服务可能处于不稳定状态。这可能导致意外行为。查看示例以了解如何减轻此问题。这在
ansible.windows
的1.6.0
版本中已略有缓解,但不能保证始终等到显示登录提示。连接用户必须启用
SeRemoteShutdownPrivilege
权限,有关更多信息,请参阅 https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/force-shutdown-from-a-remote-system。此模块等效于在 Windows 主机上使用 /f 强制选项重启。
另请参阅
另请参阅
示例
- 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"'
返回值
常见的返回值已在 此处 记录,以下是此模块独有的字段:
键 |
描述 |
---|---|
等待系统重新启动所经过的秒数。 返回值:始终返回 示例: |
|
如果机器已重新启动,则为 True。 返回值:始终返回 示例: |