Newer
Older
# Check if there is a keycloak directory in the base_path
- name: Check for existing keycloak installation
find:
paths: "{{ keycloak_base_path }}/keycloak-*"
file_type: "directory"
depth: 1
register: keycloak_existing_installations
- name: Checking if there is an existing installation that needs to be updated
block:
# We need to extract the version of each directory and add them to a list
# If so, what is it's version ? ( cut from "keycloak-$version ")
- name: Check existing versions from directorie's names
set_fact: keycloak_list_of_versions="{{ keycloak_existing_installations.files | map(attribute='path') | regex_search('-([0-9]+\.[0-9]+\.[0-9]+\b)$') | list }}"
# Compare such version to the one given
- name: Compare every version with the keycloak_version
set_fact: keycloak_needs_an_update="keycloak_list_of_versions | version(keycloak_list_of_versions, "<") | reject(false, omit) | list"
# If the $old_version < $new_version, we need to update
# They may be multi keycloak directories
when: keycloak_existing_installations.matched >= 1
block:
# Stop the service
- name: Stopping the service for the update.
become: yes
systemd:
name: "{{ keycloak_service_name }}"
state: stopped
# NB: We are installing to a new directory. We don't touch
# the old directory.
# Backup the database
- name: Backing up the of database
become: yes
shell: mysqldump keycloak > /root/keycloak-backup-$(date --iso).sql
# Upgrade the server
#- name: Upgrading the server with the new files
# This is actually reinstalling the files.