# -*- coding: utf-8 -*- # Copyright: (c) 2018, Ansible Project # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) from __future__ import annotations DOCUMENTATION = r''' module: reboot short_description: Reboot a machine notes: - E(PATH) is ignored on the remote node when searching for the C(shutdown) command. Use O(search_paths) to specify locations to search if the default paths do not work. description: - Reboot a machine, wait for it to go down, come back up, and respond to commands. - For Windows targets, use the M(ansible.windows.win_reboot) module instead. version_added: "2.7" options: pre_reboot_delay: description: - Seconds to wait before reboot. Passed as a parameter to the reboot command. - On Linux, macOS and OpenBSD, this is converted to minutes and rounded down. If less than 60, it will be set to 0. - On Solaris and FreeBSD, this will be seconds. type: int default: 0 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 reboot_timeout: description: - Maximum seconds to wait for machine to reboot and respond to a test command. - This timeout is evaluated separately for both reboot verification and test command success so the maximum execution time for the module is twice this amount. type: int default: 600 connect_timeout: description: - Maximum seconds to wait for a successful connection to the managed hosts before trying again. - If unspecified, the default setting for the underlying connection plugin is used. type: int test_command: description: - Command to run on the rebooted host and expect success from to determine the machine is ready for further tasks. type: str default: whoami msg: description: - Message to display to users before reboot. type: str default: Reboot initiated by Ansible search_paths: description: - Paths to search on the remote machine for the C(shutdown) command. - I(Only) these paths will be searched for the C(shutdown) command. E(PATH) is ignored in the remote node when searching for the C(shutdown) command. type: list elements: str default: ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin'] version_added: '2.8' 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: 'cat /proc/sys/kernel/random/boot_id' version_added: '2.10' reboot_command: description: - Command to run that reboots the system, including any parameters passed to the command. - Can be an absolute path to the command or just the command name. If an absolute path to the command is not given, O(search_paths) on the target system will be searched to find the absolute path. - This will cause O(pre_reboot_delay), O(post_reboot_delay), and O(msg) to be ignored. type: str default: '[determined based on target OS]' version_added: '2.11' extends_documentation_fragment: - action_common_attributes - action_common_attributes.flow attributes: action: support: full async: support: none bypass_host_loop: support: none check_mode: support: full diff_mode: support: none platform: platforms: posix seealso: - module: ansible.windows.win_reboot author: - Matt Davis (@nitzmahone) - Sam Doran (@samdoran) ''' EXAMPLES = r''' - 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" ''' 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: int sample: 23 '''