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.
26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
# 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:
|
|
|
|
```yaml
|
|
- name: reboot the system
|
|
ansible.builtin.include_tasks: "../../reboot/tasks/main.yaml"
|
|
vars:
|
|
reboot__local_handling: ignore
|
|
```
|