mirror of
https://github.com/ansible-middleware/keycloak.git
synced 2025-04-10 12:50:28 -07:00
RHBK v26: Migrate to keycloak_quarkus_bootstrap_admin_user[_password]
(Process for creation of admin account changed #248)
This commit is contained in:
parent
58233549a7
commit
277e1336ee
18 changed files with 132 additions and 35 deletions
molecule
debian
default
https_revproxy
quarkus-devmode
quarkus
quarkus_ha
quarkus_upgrade
roles/keycloak_quarkus
|
@ -3,8 +3,8 @@
|
|||
hosts: all
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
keycloak_quarkus_start_dev: true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- name: Verify
|
||||
hosts: all
|
||||
vars:
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_uri: "http://localhost:{{ 8080 + ( keycloak_jboss_port_offset | default(0) ) }}"
|
||||
keycloak_management_port: "http://localhost:{{ 9990 + ( keycloak_jboss_port_offset | default(0) ) }}"
|
||||
keycloak_jboss_port_offset: 10
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
hosts: all
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
keycloak_quarkus_log_level: debug
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- name: Verify
|
||||
hosts: all
|
||||
vars:
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_uri: "http://localhost:8080"
|
||||
tasks:
|
||||
- name: Populate service facts
|
||||
|
@ -16,7 +16,7 @@
|
|||
ansible.builtin.uri:
|
||||
url: "{{ keycloak_uri }}/realms/master/protocol/openid-connect/token"
|
||||
method: POST
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_admin_password }}&grant_type=password"
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_bootstrap_admin_user }}&grant_type=password"
|
||||
validate_certs: no
|
||||
register: keycloak_auth_response
|
||||
until: keycloak_auth_response.status == 200
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
hosts: all
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_realm: TestRealm
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
hosts: all
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_realm: TestRealm
|
||||
keycloak_quarkus_log: file
|
||||
keycloak_quarkus_frontend_url: 'http://localhost:8080/'
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
hosts: all
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_realm: TestRealm
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- name: Verify
|
||||
hosts: all
|
||||
vars:
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
tasks:
|
||||
- name: Populate service facts
|
||||
ansible.builtin.service_facts:
|
||||
|
@ -91,7 +91,7 @@
|
|||
ansible.builtin.uri:
|
||||
url: "https://instance:8443/realms/master/protocol/openid-connect/token"
|
||||
method: POST
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_admin_password }}&grant_type=password"
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_bootstrap_admin_user }}&grant_type=password"
|
||||
validate_certs: no
|
||||
register: keycloak_auth_response
|
||||
until: keycloak_auth_response.status == 200
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
hosts: keycloak
|
||||
vars:
|
||||
keycloak_quarkus_show_deprecation_warnings: false
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||
keycloak_realm: TestRealm
|
||||
keycloak_quarkus_host: "{{ inventory_hostname }}"
|
||||
keycloak_quarkus_log: file
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
keycloak_quarkus_offline_install: false
|
||||
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_realm: TestRealm
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- name: Verify
|
||||
hosts: instance
|
||||
vars:
|
||||
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_port: http://localhost:8080
|
||||
tasks:
|
||||
- name: Populate service facts
|
||||
|
@ -24,7 +24,7 @@
|
|||
ansible.builtin.uri:
|
||||
url: "{{ keycloak_quarkus_port }}/realms/master/protocol/openid-connect/token"
|
||||
method: POST
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_admin_password }}&grant_type=password"
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_bootstrap_admin_password }}&grant_type=password"
|
||||
validate_certs: no
|
||||
register: keycloak_auth_response
|
||||
until: keycloak_auth_response.status == 200
|
||||
|
|
|
@ -44,7 +44,8 @@ Role Defaults
|
|||
|
||||
| Variable | Description | Default |
|
||||
|:---------|:------------|:--------|
|
||||
|`keycloak_quarkus_admin_user`| Administration console user account | `admin` |
|
||||
|`keycloak_quarkus_bootstrap_admin_user`| Administration console user account | `admin` |
|
||||
|`keycloak_quarkus_admin_user`| Deprecated, use `keycloak_quarkus_bootstrap_admin_user` instead. | |
|
||||
|`keycloak_quarkus_bind_address`| Address for binding service ports | `0.0.0.0` |
|
||||
|`keycloak_quarkus_host`| Hostname for the Keycloak server | `localhost` |
|
||||
|`keycloak_quarkus_port`| The port used by the proxy when exposing the hostname | `-1` |
|
||||
|
@ -243,7 +244,8 @@ Role Variables
|
|||
|
||||
| Variable | Description | Required |
|
||||
|:---------|:------------|----------|
|
||||
|`keycloak_quarkus_admin_pass`| Password of console admin account | `yes` |
|
||||
|`keycloak_quarkus_bootstrap_admin_password`| Password of console admin account | `yes` |
|
||||
|`keycloak_quarkus_admin_pass`| Deprecated, use `keycloak_quarkus_bootstrap_admin_password` instead. | |
|
||||
|`keycloak_quarkus_frontend_url`| Base URL for frontend URLs, including scheme, host, port and path | `no` |
|
||||
|`keycloak_quarkus_admin_url`| Base URL for accessing the administration console, including scheme, host, port and path | `no` |
|
||||
|`keycloak_quarkus_ks_vault_pass`| The password for accessing the keystore vault SPI | `no` |
|
||||
|
@ -265,7 +267,7 @@ The role uses the following [custom facts](https://docs.ansible.com/ansible/late
|
|||
|
||||
| Variable | Description |
|
||||
|:---------|:------------|
|
||||
|`general.bootstrapped` | A custom fact indicating whether this role has been used for bootstrapping keycloak on the respective host before; set to `false` (e.g., when starting off with a new, empty database) ensures that the initial admin user as defined by `keycloak_quarkus_admin_user[_pass]` gets created |
|
||||
|`general.bootstrapped` | A custom fact indicating whether this role has been used for bootstrapping keycloak on the respective host before; set to `false` (e.g., when starting off with a new, empty database) ensures that the initial admin user as defined by `keycloak_quarkus_bootstrap_admin_user[_password]` gets created |
|
||||
|
||||
License
|
||||
-------
|
||||
|
|
|
@ -27,8 +27,8 @@ keycloak_quarkus_configure_firewalld: false
|
|||
keycloak_quarkus_configure_iptables: false
|
||||
|
||||
### administrator console password
|
||||
keycloak_quarkus_admin_user: admin
|
||||
keycloak_quarkus_admin_pass:
|
||||
keycloak_quarkus_bootstrap_admin_user: admin
|
||||
keycloak_quarkus_bootstrap_admin_password:
|
||||
keycloak_quarkus_master_realm: master
|
||||
|
||||
### Configuration settings
|
||||
|
|
|
@ -68,13 +68,13 @@ argument_specs:
|
|||
default: "10s"
|
||||
description: "systemd RestartSec for service"
|
||||
type: "str"
|
||||
keycloak_quarkus_admin_user:
|
||||
keycloak_quarkus_bootstrap_admin_user:
|
||||
default: "admin"
|
||||
description: "Administration console user account"
|
||||
description: "Administration user account, only for bootstrapping"
|
||||
type: "str"
|
||||
keycloak_quarkus_admin_pass:
|
||||
keycloak_quarkus_bootstrap_admin_password:
|
||||
required: true
|
||||
description: "Password of console admin account"
|
||||
description: "Password of admin account, only for bootstrapping"
|
||||
type: "str"
|
||||
keycloak_quarkus_master_realm:
|
||||
default: "master"
|
||||
|
|
|
@ -49,5 +49,101 @@
|
|||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/26.0/html-single/upgrading_guide/index#new_hostname_options
|
||||
- name: Check deprecation of keycloak_quarkus_frontend_url -> keycloak_quarkus_hostname
|
||||
when:
|
||||
- keycloak_quarkus_hostname is not defined
|
||||
- keycloak_quarkus_frontend_url is defined
|
||||
- keycloak_quarkus_frontend_url != ''
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_hostname: "{{ keycloak_quarkus_frontend_url }}"
|
||||
deprecated_variable: "keycloak_quarkus_frontend_url" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/26.0/html-single/upgrading_guide/index#new_hostname_options
|
||||
- name: Check deprecation of keycloak_quarkus_hostname_strict_https + keycloak_quarkus_host + keycloak_quarkus_port + keycloak_quarkus_path -> keycloak_quarkus_hostname
|
||||
when:
|
||||
- keycloak_quarkus_hostname is not defined
|
||||
- keycloak_quarkus_hostname_strict_https is defined or keycloak_quarkus_frontend_url is defined or keycloak_quarkus_port is defined or keycloak_quarkus_path is defined
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_hostname: >-
|
||||
{% set protocol = '' %}
|
||||
{% if keycloak_quarkus_hostname_strict_https %}
|
||||
{% set protocol = 'https://' %}
|
||||
{% elif keycloak_quarkus_hostname_strict_https is defined and keycloak_quarkus_hostname_strict_https is False %}
|
||||
{% set protocol = 'http://' %}
|
||||
{% endif %}
|
||||
{{ protocol }}{{ keycloak_quarkus_host }}:{{ keycloak_quarkus_port }}/{{ keycloak_quarkus_path }}
|
||||
deprecated_variable: "keycloak_quarkus_hostname_strict_https or keycloak_quarkus_frontend_url or keycloak_quarkus_frontend_url or keycloak_quarkus_hostname" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/26.0/html-single/upgrading_guide/index#new_hostname_options
|
||||
- name: Check deprecation of keycloak_quarkus_admin_url -> keycloak_quarkus_admin
|
||||
when:
|
||||
- keycloak_quarkus_admin is not defined
|
||||
- keycloak_quarkus_admin_url is defined
|
||||
- keycloak_quarkus_admin_url != ''
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_admin: "{{ keycloak_quarkus_admin_url }}"
|
||||
deprecated_variable: "keycloak_quarkus_admin_url" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/26.0/html-single/upgrading_guide/index#new_hostname_options
|
||||
- name: Check deprecation of keycloak_quarkus_hostname_strict_backchannel -> keycloak_quarkus_hostname_backchannel_dynamic
|
||||
when:
|
||||
- keycloak_quarkus_hostname_backchannel_dynamic is not defined
|
||||
- keycloak_quarkus_hostname_strict_backchannel is defined
|
||||
- keycloak_quarkus_hostname_strict_backchannel != ''
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_hostname_backchannel_dynamic: "{{ keycloak_quarkus_hostname_strict_backchannel == False }}"
|
||||
deprecated_variable: "keycloak_quarkus_hostname_backchannel_dynamic" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://github.com/keycloak/keycloak/issues/30009
|
||||
- name: Check deprecation of keycloak_quarkus_admin_user -> keycloak_quarkus_bootstrap_admin_user
|
||||
when:
|
||||
- keycloak_quarkus_bootstrap_admin_user is not defined
|
||||
- keycloak_quarkus_admin_user is defined
|
||||
- keycloak_quarkus_admin_user != ''
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_bootstrap_admin_user: "{{ keycloak_quarkus_admin_user }}"
|
||||
deprecated_variable: "keycloak_quarkus_admin_user" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
# https://github.com/keycloak/keycloak/issues/30009
|
||||
- name: Check deprecation of keycloak_quarkus_admin_pass -> keycloak_quarkus_bootstrap_admin_password
|
||||
when:
|
||||
- keycloak_quarkus_bootstrap_admin_password is not defined
|
||||
- keycloak_quarkus_admin_pass is defined
|
||||
- keycloak_quarkus_admin_pass != ''
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
changed_when: keycloak_quarkus_show_deprecation_warnings
|
||||
ansible.builtin.set_fact:
|
||||
keycloak_quarkus_bootstrap_admin_user: "{{ keycloak_quarkus_admin_pass }}"
|
||||
deprecated_variable: "keycloak_quarkus_admin_pass" # read in deprecation handler
|
||||
notify:
|
||||
- print deprecation warning
|
||||
|
||||
- name: Flush handlers
|
||||
ansible.builtin.meta: flush_handlers
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
register: keycloak_service_status
|
||||
changed_when: false
|
||||
|
||||
- name: "Notify to remove `keycloak_quarkus_admin_user[_pass]` env vars"
|
||||
- name: "Notify to remove `keycloak_quarkus_bootstrap_admin_user[_password]` env vars"
|
||||
when:
|
||||
- not ansible_local.keycloak.general.bootstrapped | default(false) | bool # it was not bootstrapped prior to the current role's execution
|
||||
- keycloak_service_status.status.ActiveState == "active" # but it is now
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
- name: Validate admin console password
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- keycloak_quarkus_admin_pass | length > 12
|
||||
- keycloak_quarkus_bootstrap_admin_password | length > 12
|
||||
quiet: true
|
||||
fail_msg: "The console administrator password is empty or invalid. Please set the keycloak_quarkus_admin_pass to a 12+ char long string"
|
||||
fail_msg: "The console administrator password is empty or invalid. Please set the keycloak_quarkus_bootstrap_admin_password to a 12+ char long string"
|
||||
success_msg: "{{ 'Console administrator password OK' }}"
|
||||
|
||||
- name: Validate relative path
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{{ ansible_managed | comment }}
|
||||
{% if not ansible_local.keycloak.general.bootstrapped | default(false) | bool %}
|
||||
KEYCLOAK_ADMIN={{ keycloak_quarkus_admin_user }}
|
||||
KEYCLOAK_ADMIN_PASSWORD='{{ keycloak_quarkus_admin_pass }}'
|
||||
KC_BOOTSTRAP_ADMIN_USERNAME={{ keycloak_quarkus_bootstrap_admin_user }}
|
||||
KC_BOOTSTRAP_ADMIN_PASSWORD='{{ keycloak_quarkus_bootstrap_admin_password }}'
|
||||
{% else %}
|
||||
{{ keycloak.bootstrap_mnemonic }}
|
||||
{% endif %}
|
||||
|
|
Loading…
Add table
Reference in a new issue