Compare commits

..

2 commits

Author SHA1 Message Date
608f05e8c6
wip: ansible pull
Some checks failed
/ Ansible Lint (push) Failing after 3m30s
/ Ansible Lint (pull_request) Failing after 3m49s
2025-07-01 04:13:56 +02:00
fe813fd376
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-07-01 04:13:52 +02:00
2 changed files with 15 additions and 2 deletions

View file

@ -1,6 +1,5 @@
- name: reboot the system
ansible.builtin.import_role:
role: reboot
ansible.builtin.include_tasks: "../../reboot/tasks/main.yaml"
vars:
# Simply don't reboot on local connections and rely on proper handling of /var/run/reboot-required.
reboot__local_handling: ignore

View file

@ -10,3 +10,17 @@ A role for rebooting a host, which also handles local connections gracefully.
- `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
```