ansible.windows.win_reboot – Reboot a windows machine
This plugin is part of the ansible.windows collection (version 1.9.0).
You might already have this collection installed if you are using the
It is not included in
To check whether it is installed, run
ansible-galaxy collection list.
To install it, use:
ansible-galaxy collection install ansible.windows.
To use it in a playbook, specify:
Reboot a Windows machine, wait for it to go down, come back up, and respond to commands.
For non-Windows targets, use the ansible.builtin.reboot module instead.
This module has a corresponding action plugin.
If a shutdown was already scheduled on the system, ansible.windows.win_reboot will abort the scheduled shutdown and enforce its own shutdown.
Beware that when ansible.windows.win_reboot returns, the Windows system may not have settled yet and some base services could be in limbo. This can result in unexpected behavior. Check the examples for ways to mitigate this. This has been slightly mitigated in the
ansible.windowsbut it is not guranteed to always wait until the logon prompt is shown.
The connection user must have the
SeRemoteShutdownPrivilegeprivilege enabled, see https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/force-shutdown-from-a-remote-system for more information.
The official documentation on the ansible.builtin.reboot module.
- 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"'
Common return values are documented here, the following are the fields unique to this module:
The number of seconds that elapsed waiting for the system to be rebooted.
True if the machine was rebooted.