Ansible Reboot Module: Restart Remote Hosts & Wait for Recovery (Guide)
By Luca Berton · Published 2024-01-01 · Category: troubleshooting
How to reboot remote hosts with Ansible reboot module (ansible.builtin.reboot). Restart Linux and Windows, wait for reconnection, set timeouts.

Introduction
In the fast-paced world of IT administration, automation stands as a pivotal tool for efficiency, reliability, and scalability. Among the various automation tools available, Ansible has emerged as a leader, especially for its simplicity and versatility. This article delves into a specific application of Ansible: rebooting Windows machines. The process, often seen as routine yet critical, can be automated effectively using Ansible's win_reboot module, enhancing system management and operational consistency.
See also: Ansible troubleshooting - Error: name[template]
Understanding the Need for Automated Reboots
Regular reboots of Windows servers and workstations are a staple in IT maintenance. They are essential for applying system updates, ensuring changes take effect, and maintaining overall system health. However, manually rebooting machines, especially in large environments, can be time-consuming and prone to human error. Automation via Ansible not only saves time but also adds precision and reliability to the process.Ansible and Windows: A Seamless Integration
Ansible, traditionally known for managing Linux environments, extends its capabilities to Windows with modules likewin_reboot. These modules are tailored to interact seamlessly with Windows systems, providing administrators with a familiar yet powerful toolset.
- name: Reboot Windows machine
hosts: windows
tasks:
- name: Restart the Windows machine
ansible.windows.win_reboot:
msg: "Reboot initiated by Ansible"
pre_reboot_delay: 0
post_reboot_delay: 30
reboot_timeout: 600
connect_timeout: 5
test_command: ping 127.0.0.1
See also: Event-Driven Ansible (EDA): Automate Responses to Events Guide
Anatomy of the Reboot Playbook
The provided Ansible playbook showcases the simplicity and power of thewin_reboot module. Key components include:
Hosts Declaration: This specifies the target Windows machines, easily customizable for different groups or environments.
Tasks Execution: The core action - rebooting the machine - is handled in a single task. Here, various parameters fine-tune the reboot process:
• msg: A custom message indicating the reason for reboot.
• pre_reboot_delay and post_reboot_delay: Controls the wait time before and after the reboot.
• reboot_timeout: Sets a limit for how long Ansible waits for the reboot to complete.
• connect_timeout: The time Ansible waits between connection attempts post-reboot.
• test_command: A simple command to verify if the machine is ready post-reboot.
Benefits of Using Ansible for Windows Reboots
Consistency: Ensures that reboots across all machines follow the same procedure and timing. Time-saving: Frees up administrators from manual interventions, allowing them to focus on more strategic tasks. Error Reduction: Automating the process minimizes the chances of human error.See also: How to Install Ansible on Ubuntu 23.10 Mantic Minotaur
Conclusion
The integration of Ansible in Windows environments, particularly for routine tasks like system reboots, exemplifies the power of automation in modern IT infrastructure. By leveraging Ansible'swin_reboot module, organizations can achieve greater efficiency, consistency, and reliability in their system management practices. As the landscape of IT continues to evolve, the role of automation tools like Ansible will undoubtedly become more integral in shaping the future of technology operations.
This article provides an overview of automating Windows reboots using Ansible, discussing its significance, functionality, and benefits in the realm of IT system management.
Related Articles
• Ansible privilege escalation patterns • Ansible Windows administration walkthroughSee also
• Ansible reboot Module: Restart Hosts and Wait for Recovery (Complete Guide)Category: troubleshooting