mirror of
https://github.com/zebrajr/ansible.git
synced 2025-12-07 00:19:57 +01:00
* Update triple single quotes to triple double quotes This change was fully automated. The updated Python files have been verified to tokenize the same as the originals, except for the expected change in quoting of strings, which were verified through literal_eval. * Manual conversion of docstring quotes
132 lines
4.6 KiB
Python
132 lines
4.6 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
|
'status': ['stableinterface'],
|
|
'supported_by': 'core'}
|
|
|
|
DOCUMENTATION = r"""
|
|
---
|
|
module: win_reboot
|
|
short_description: Reboot a windows machine
|
|
description:
|
|
- Reboot a Windows machine, wait for it to go down, come back up, and respond to commands.
|
|
- For non-Windows targets, use the M(reboot) module instead.
|
|
version_added: '2.1'
|
|
options:
|
|
pre_reboot_delay:
|
|
description:
|
|
- Seconds to wait before reboot. Passed as a parameter to the reboot command.
|
|
type: int
|
|
default: 2
|
|
aliases: [ pre_reboot_delay_sec ]
|
|
post_reboot_delay:
|
|
description:
|
|
- Seconds to wait after the reboot command was successful before attempting to validate the system rebooted successfully.
|
|
- This is useful if you want wait for something to settle despite your connection already working.
|
|
type: int
|
|
default: 0
|
|
version_added: '2.4'
|
|
aliases: [ post_reboot_delay_sec ]
|
|
shutdown_timeout:
|
|
description:
|
|
- Maximum seconds to wait for shutdown to occur.
|
|
- Increase this timeout for very slow hardware, large update applications, etc.
|
|
- This option has been removed since Ansible 2.5 as the win_reboot behavior has changed.
|
|
type: int
|
|
default: 600
|
|
aliases: [ shutdown_timeout_sec ]
|
|
reboot_timeout:
|
|
description:
|
|
- Maximum seconds to wait for machine to re-appear on the network and respond to a test command.
|
|
- This timeout is evaluated separately for both reboot verification and test command success so maximum clock time is actually twice this value.
|
|
type: int
|
|
default: 600
|
|
aliases: [ reboot_timeout_sec ]
|
|
connect_timeout:
|
|
description:
|
|
- Maximum seconds to wait for a single successful TCP connection to the WinRM endpoint before trying again.
|
|
type: int
|
|
default: 5
|
|
aliases: [ connect_timeout_sec ]
|
|
test_command:
|
|
description:
|
|
- Command to expect success for to determine the machine is ready for management.
|
|
type: str
|
|
default: whoami
|
|
msg:
|
|
description:
|
|
- Message to display to users.
|
|
type: str
|
|
default: Reboot initiated by Ansible
|
|
boot_time_command:
|
|
description:
|
|
- Command to run that returns a unique string indicating the last time the system was booted.
|
|
- Setting this to a command that has different output each time it is run will cause the task to fail.
|
|
type: str
|
|
default: '(Get-WmiObject -ClassName Win32_OperatingSystem).LastBootUpTime'
|
|
version_added: '2.10'
|
|
notes:
|
|
- If a shutdown was already scheduled on the system, C(win_reboot) will abort the scheduled shutdown and enforce its own shutdown.
|
|
- Beware that when C(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.
|
|
- The connection user must have the C(SeRemoteShutdownPrivilege) privilege enabled, see
|
|
U(https://docs.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/force-shutdown-from-a-remote-system)
|
|
for more information.
|
|
seealso:
|
|
- module: reboot
|
|
author:
|
|
- Matt Davis (@nitzmahone)
|
|
"""
|
|
|
|
EXAMPLES = r"""
|
|
- name: Reboot the machine with all defaults
|
|
win_reboot:
|
|
|
|
- name: Reboot a slow machine that might have lots of updates to apply
|
|
win_reboot:
|
|
reboot_timeout: 3600
|
|
|
|
# Install a Windows feature and reboot if necessary
|
|
- name: Install IIS Web-Server
|
|
win_feature:
|
|
name: Web-Server
|
|
register: iis_install
|
|
|
|
- name: Reboot when Web-Server feature requires it
|
|
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
|
|
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
|
|
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
|
|
win_reboot:
|
|
test_command: 'exit (Get-Service -Name Netlogon).Status -ne "Running"'
|
|
"""
|
|
|
|
RETURN = r"""
|
|
rebooted:
|
|
description: True if the machine was rebooted.
|
|
returned: always
|
|
type: bool
|
|
sample: true
|
|
elapsed:
|
|
description: The number of seconds that elapsed waiting for the system to be rebooted.
|
|
returned: always
|
|
type: float
|
|
sample: 23.2
|
|
"""
|