diff --git a/roles/keycloak_quarkus/README.md b/roles/keycloak_quarkus/README.md index c461203..58e3ef4 100644 --- a/roles/keycloak_quarkus/README.md +++ b/roles/keycloak_quarkus/README.md @@ -182,7 +182,7 @@ Role Defaults |`keycloak_quarkus_config_dir` | Path for configuration | `{{ keycloak_quarkus_home }}/conf` | |`keycloak_quarkus_master_realm` | Name for rest authentication realm | `master` | |`keycloak_auth_client` | Authentication client for configuration REST calls | `admin-cli` | -|`keycloak_force_install` | Remove pre-existing versions of service | `False` | +|`keycloak_quarkus_force_install` | Remove pre-existing versions of service | `False` | |`keycloak_quarkus_proxy_mode`| The proxy address forwarding mode if the server is behind a reverse proxy | `edge` | |`keycloak_quarkus_start_dev`| Whether to start the service in development mode (start-dev) | `False` | |`keycloak_quarkus_transaction_xa_enabled`| Whether to use XA transactions | `True` | diff --git a/roles/keycloak_quarkus/defaults/main.yml b/roles/keycloak_quarkus/defaults/main.yml index d53c790..be05225 100644 --- a/roles/keycloak_quarkus/defaults/main.yml +++ b/roles/keycloak_quarkus/defaults/main.yml @@ -194,3 +194,5 @@ keycloak_quarkus_restart_health_check: true keycloak_quarkus_restart_health_check_delay: 10 keycloak_quarkus_restart_health_check_retries: 25 keycloak_quarkus_restart_pause: 15 + +keycloak_quarkus_force_install: false diff --git a/roles/keycloak_quarkus/meta/argument_specs.yml b/roles/keycloak_quarkus/meta/argument_specs.yml index 1683321..5bf57e4 100644 --- a/roles/keycloak_quarkus/meta/argument_specs.yml +++ b/roles/keycloak_quarkus/meta/argument_specs.yml @@ -72,6 +72,10 @@ argument_specs: default: "admin" description: "Administration user account, only for bootstrapping" type: "str" + keycloak_quarkus_force_install: + default: false + description: "Remove pre-existing versions of service" + type: "bool" keycloak_quarkus_bootstrap_admin_password: required: true description: "Password of admin account, only for bootstrapping" diff --git a/roles/keycloak_quarkus/tasks/install.yml b/roles/keycloak_quarkus/tasks/install.yml index f20b225..9ed84ac 100644 --- a/roles/keycloak_quarkus/tasks/install.yml +++ b/roles/keycloak_quarkus/tasks/install.yml @@ -17,6 +17,27 @@ path: "{{ keycloak.home }}" register: existing_deploy +- name: Stop and restart if existing deployment exists and install forced + when: existing_deploy.stat.exists and keycloak_quarkus_force_install | bool + block: + - name: "Stop the old {{ keycloak.service_name }} service" + become: true + failed_when: false + ansible.builtin.systemd: + name: keycloak + state: stopped + - name: "Remove the old {{ keycloak.service_name }} deployment" + become: true + ansible.builtin.file: + path: "{{ keycloak_quarkus_home }}" + state: absent + +- name: Check for an existing deployment after possible forced removal + become: true + ansible.builtin.stat: + path: "{{ keycloak_quarkus_home }}" + register: existing_deploy + - name: "Create {{ keycloak.service_name }} service user/group" become: true ansible.builtin.user: