ansible-infra/roles/reboot/README.md
June 635bbd447d
reboot(role): intro. reboot role, which handles local conns. gracefully
Also use this role instead of plain ansible.builtin.reboot.
This is in preparation for using ansible_pull as we don't want to have
ansible.builtin.reboot fail local playbook runs.
2025-08-30 20:19:23 +02:00

1.2 KiB

Role reboot

A role for rebooting a host, which also handles local connections gracefully.

Optional Arguments

  • reboot__local_handling: How to handle reboot on local connections. The default mode is none.
    Possible choices:
    • none: Just runs ansible.builtin.reboot, which would fail on local connections.
    • ignore: Just doesn't reboot on local connections.
    • file: Doesn't reboot on local connections and instead touches the file defined by reboot__local_handling_file.
  • reboot__local_handling_file: The file to touch, if reboot__local_handling is file. Defaults to /var/run/ansible-reboot-required.

Usage in a Handler

Since a reboot should often be triggered from a handler and since handlers can't include or import roles, this roles logic can also be run by including the main.yaml task using ansible.builtin.include_tasks as a workaround.
When doing so, arguments should be specified explicitly as necessary (so at least reboot__local_handling) as the default role inclusion mechanisms like setting default values don't work.

An example handler would look like this:

- name: reboot the system
  ansible.builtin.include_tasks: "../../reboot/tasks/main.yaml"
  vars:
    reboot__local_handling: ignore