How to reboot remote hosts with Ansible?
I’m going to show you a live Playbook with some simple Ansible code. I’m Luca Berton and welcome to today’s episode of Ansible Pilot.
Ansible reboot remote hosts
Today we’re talking about the Ansible module reboot
.
The full name is ansible.builtin.reboot
which means is part of the collection of modules “builtin” with ansible and shipped with ansible-core
.
This module is pretty stable and out for years and supports a large variety of operating systems.
The purpose is to reboot a remote machine, wait for it to go down, come back up, and respond to commands.
For Windows targets, use the ansible.windows.win_reboot
module instead.
Parameters
- reboot_timeout integer - 600
- msg string - “Reboot initiated by Ansible”
- reboot_command string - “[OS specific]”
- pre_reboot_delay integer - 0
- post_reboot_delay integer - 0
- test_command string - “whoami”
- boot_time_command string - “cat /proc/sys/kernel/random/boot_id”
This module has not required parameters but some of them might are nice to know.
Let me summarize the most useful parameters.
The “reboot_timeout” defines how much time to expect before a machine returns up & running. The real timeout is double because of the process of reboot and test command success.
The first step in the reboot process is to print a message to all the logged users. You could keep the default “Reboot initiated by Ansible” or customize using the “msg” parameter.
Secondly is going to execute the reboot command, OS-specific. If you need a specific one, please customize the “reboot_command” parameter.
You could define also some extra delay time using the “pre_reboot_delay” or “post_reboot_delay” integer. Both default to zero.
Once rebooted the target host Ansible is going to verify the workstation fully working using a test command. The default is whoami
, but you could customize using the “test_command” parameter.
This module could return also the amount of time indeed for bootstrap process reading throw kernel, specifically /proc/sys/kernel/random/boot_id
.
Playbook
Let’s jump into a real-life playbook on how to reboot remote hosts with Ansible Playbook.
- reboot.yml
---
- name: reboot module Playbook
hosts: all
become: true
tasks:
- name: reboot host(s)
ansible.builtin.reboot:
msg: "reboot by Ansible"
pre_reboot_delay: 5
post_reboot_delay: 10
test_command: "whoami"
Conclusion
Now you know how to reboot remote Linux hosts with Ansible. Subscribe to the YouTube channel, Medium, and Website, X (formerly Twitter) to not miss the next episode of the Ansible Pilot.
Academy
Learn the Ansible automation technology with some real-life examples in my Udemy 300+ Lessons Video Course.
My book Ansible By Examples: 200+ Automation Examples For Linux and Windows System Administrator and DevOps
Donate
Want to keep this project going? Please donate