Add restart strategies, and allow custom task include

Co-authored-by: Helmut Wolf <hwo@world-direct.at>
Co-authored-by: Guido Grazioli <ggraziol@redhat.com>
This commit is contained in:
Guido Grazioli 2024-05-15 13:34:29 +02:00
commit 2d573c2b62
9 changed files with 104 additions and 45 deletions

View file

@ -0,0 +1,4 @@
---
- name: "Display message"
ansible.builtin.debug:
msg: "keycloak_quarkus_restart_strategy is none, skipping restart"

View file

@ -0,0 +1,8 @@
---
- name: "Restart services in serial, with optional healtch check (keycloak_quarkus_restart_health_check)"
throttle: 1
loop: "{{ ansible_play_hosts }}"
block:
- name: "Restart and enable {{ keycloak.service_name }} service on first host"
ansible.builtin.include_tasks: ../restart.yml
delegate_to: "{{ item }}"

View file

@ -0,0 +1,34 @@
---
- name: Verify first restarted service with health URL, then rest in parallel
block:
- name: "Restart and enable {{ keycloak.service_name }} service on first host"
ansible.builtin.systemd:
name: "{{ keycloak.service_name }}"
enabled: true
state: restarted
daemon_reload: true
become: true
delegate_to: "{{ ansible_play_hosts | first }}"
run_once: true
- name: "Wait until {{ keycloak.service_name }} service becomes active {{ keycloak.health_url }}"
ansible.builtin.uri:
url: "{{ keycloak.health_url }}"
register: keycloak_status
until: keycloak_status.status == 200
retries: 25
delay: 10
delegate_to: "{{ ansible_play_hosts | first }}"
run_once: true
- name: Pause to give distributed ispn caches time to (re-)replicate back onto first host
ansible.builtin.pause:
seconds: "{{ keycloak_quarkus_restart_pause }}"
when:
- keycloak_quarkus_ha_enabled
- name: "Restart and enable {{ keycloak.service_name }} service on other hosts"
ansible.builtin.include_tasks: ../restart.yml
delegate_to: "{{ item }}"
loop: "{{ ansible_play_hosts }}"
when: inventory_hostname != ansible_play_hosts | first