mirror of
https://github.com/ansible-middleware/keycloak.git
synced 2026-07-25 08:55:04 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2792e32ba | ||
|
|
4f62617f2c | ||
|
|
edb38ebb3d | ||
|
|
d25bf46a6a | ||
|
|
74ca1e05ef | ||
|
|
b9181abb24 | ||
|
|
d4eafe1b30 | ||
|
|
19bd41a86a | ||
|
|
b44d754b8c |
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
namespace: middleware_automation
|
namespace: middleware_automation
|
||||||
name: keycloak
|
name: keycloak
|
||||||
version: "3.0.10"
|
version: "3.0.11"
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- Romain Pelisse <rpelisse@redhat.com>
|
- Romain Pelisse <rpelisse@redhat.com>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ platforms:
|
|||||||
image: ghcr.io/hspaans/molecule-containers:debian-13
|
image: ghcr.io/hspaans/molecule-containers:debian-13
|
||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ platforms:
|
|||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
---
|
---
|
||||||
|
keycloak_download_validate_certs: false
|
||||||
|
keycloak_validate_certs: false
|
||||||
|
keycloak_quarkus_download_validate_certs: false
|
||||||
|
keycloak_quarkus_validate_certs: false
|
||||||
|
keycloak_realm_validate_certs: false
|
||||||
keycloak_quarkus_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
keycloak_quarkus_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
||||||
keycloak_quarkus_systemd_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
keycloak_quarkus_systemd_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
||||||
keycloak_quarkus_install_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
keycloak_quarkus_install_require_privilege_escalation: "{{ keycloak_install_requires_become | default(true) }}"
|
||||||
|
|||||||
@@ -7,12 +7,11 @@
|
|||||||
keycloak_quarkus_show_deprecation_warnings: false
|
keycloak_quarkus_show_deprecation_warnings: false
|
||||||
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
keycloak_quarkus_bootstrap_admin_password: "remembertochangeme"
|
||||||
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
keycloak_quarkus_bootstrap_admin_user: "remembertochangeme"
|
||||||
keycloak_quarkus_hostname: https://proxy
|
keycloak_quarkus_hostname: "http://proxy:{{ keycloak_quarkus_http_port }}"
|
||||||
keycloak_quarkus_log: file
|
keycloak_quarkus_log: file
|
||||||
keycloak_quarkus_http_enabled: True
|
keycloak_quarkus_http_enabled: True
|
||||||
keycloak_quarkus_http_port: 8080
|
keycloak_quarkus_http_port: 8080
|
||||||
keycloak_quarkus_proxy_mode: edge
|
keycloak_quarkus_proxy_mode: edge
|
||||||
keycloak_quarkus_http_relative_path: /
|
keycloak_quarkus_http_relative_path: /
|
||||||
keycloak_quarkus_health_check_url: http://proxy:8080/realms/master/.well-known/openid-configuration
|
|
||||||
roles:
|
roles:
|
||||||
- role: keycloak_quarkus
|
- role: keycloak_quarkus
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ platforms:
|
|||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
networks:
|
networks:
|
||||||
- name: keycloak
|
- name: keycloak
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
published_ports:
|
published_ports:
|
||||||
- 0.0.0.0:8080:8080/tcp
|
- 0.0.0.0:8080:8080/tcp
|
||||||
@@ -20,7 +20,7 @@ platforms:
|
|||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
networks:
|
networks:
|
||||||
- name: keycloak
|
- name: keycloak
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "443/tcp"
|
- "443/tcp"
|
||||||
published_ports:
|
published_ports:
|
||||||
- 0.0.0.0:443:443/tcp
|
- 0.0.0.0:443:443/tcp
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ platforms:
|
|||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
|
|||||||
@@ -90,6 +90,7 @@
|
|||||||
auth_realm: "{{ auth_realm }}"
|
auth_realm: "{{ auth_realm }}"
|
||||||
auth_username: "{{ auth_username }}"
|
auth_username: "{{ auth_username }}"
|
||||||
auth_password: "{{ auth_password }}"
|
auth_password: "{{ auth_password }}"
|
||||||
|
validate_certs: false
|
||||||
block:
|
block:
|
||||||
- name: Reset fixtures from a previous verify run
|
- name: Reset fixtures from a previous verify run
|
||||||
middleware_automation.keycloak.keycloak_user:
|
middleware_automation.keycloak.keycloak_user:
|
||||||
@@ -168,6 +169,7 @@
|
|||||||
middleware_automation.keycloak.keycloak_realm_info:
|
middleware_automation.keycloak.keycloak_realm_info:
|
||||||
auth_keycloak_url: "{{ auth_keycloak_url }}"
|
auth_keycloak_url: "{{ auth_keycloak_url }}"
|
||||||
realm: "{{ target_realm }}"
|
realm: "{{ target_realm }}"
|
||||||
|
validate_certs: false
|
||||||
|
|
||||||
- name: Exercise migrated modules against running Keycloak
|
- name: Exercise migrated modules against running Keycloak
|
||||||
module_defaults:
|
module_defaults:
|
||||||
@@ -176,6 +178,7 @@
|
|||||||
auth_realm: "{{ auth_realm }}"
|
auth_realm: "{{ auth_realm }}"
|
||||||
auth_username: "{{ auth_username }}"
|
auth_username: "{{ auth_username }}"
|
||||||
auth_password: "{{ auth_password }}"
|
auth_password: "{{ auth_password }}"
|
||||||
|
validate_certs: false
|
||||||
block:
|
block:
|
||||||
- name: keycloak_realm_keys_metadata_info — query realm keys
|
- name: keycloak_realm_keys_metadata_info — query realm keys
|
||||||
middleware_automation.keycloak.keycloak_realm_keys_metadata_info:
|
middleware_automation.keycloak.keycloak_realm_keys_metadata_info:
|
||||||
@@ -536,6 +539,7 @@
|
|||||||
auth_realm: "{{ auth_realm }}"
|
auth_realm: "{{ auth_realm }}"
|
||||||
auth_username: "{{ auth_username }}"
|
auth_username: "{{ auth_username }}"
|
||||||
auth_password: "{{ auth_password }}"
|
auth_password: "{{ auth_password }}"
|
||||||
|
validate_certs: false
|
||||||
block:
|
block:
|
||||||
- name: keycloak_authz_custom_policy — remove custom policy if created
|
- name: keycloak_authz_custom_policy — remove custom policy if created
|
||||||
middleware_automation.keycloak.keycloak_authz_custom_policy:
|
middleware_automation.keycloak.keycloak_authz_custom_policy:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ platforms:
|
|||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ platforms:
|
|||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ platforms:
|
|||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8009/tcp"
|
- "8009/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ platforms:
|
|||||||
- keycloak
|
- keycloak
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
@@ -24,7 +24,7 @@ platforms:
|
|||||||
- keycloak
|
- keycloak
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
@@ -37,7 +37,7 @@ platforms:
|
|||||||
- database
|
- database
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "5432/tcp"
|
- "5432/tcp"
|
||||||
mounts:
|
mounts:
|
||||||
- type: bind
|
- type: bind
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ platforms:
|
|||||||
- keycloak
|
- keycloak
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
@@ -24,7 +24,7 @@ platforms:
|
|||||||
- keycloak
|
- keycloak
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
@@ -37,7 +37,7 @@ platforms:
|
|||||||
- database
|
- database
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "5432/tcp"
|
- "5432/tcp"
|
||||||
mounts:
|
mounts:
|
||||||
- type: bind
|
- type: bind
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ platforms:
|
|||||||
- keycloak
|
- keycloak
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "8080/tcp"
|
- "8080/tcp"
|
||||||
- "8443/tcp"
|
- "8443/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
@@ -24,7 +24,7 @@ platforms:
|
|||||||
- infinispan
|
- infinispan
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "11222/tcp"
|
- "11222/tcp"
|
||||||
- name: postgres
|
- name: postgres
|
||||||
image: ubuntu/postgres:14-22.04_beta
|
image: ubuntu/postgres:14-22.04_beta
|
||||||
@@ -35,7 +35,7 @@ platforms:
|
|||||||
- database
|
- database
|
||||||
networks:
|
networks:
|
||||||
- name: rhbk
|
- name: rhbk
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- "5432/tcp"
|
- "5432/tcp"
|
||||||
mounts:
|
mounts:
|
||||||
- type: bind
|
- type: bind
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ platforms:
|
|||||||
command: "/usr/sbin/init"
|
command: "/usr/sbin/init"
|
||||||
pre_build_image: true
|
pre_build_image: true
|
||||||
privileged: true
|
privileged: true
|
||||||
port_bindings:
|
exposed_ports:
|
||||||
- 8080:8080
|
- "8080/tcp"
|
||||||
- "9000/tcp"
|
- "9000/tcp"
|
||||||
published_ports:
|
published_ports:
|
||||||
- 0.0.0.0:8080:8080/TCP
|
- 0.0.0.0:8080:8080/TCP
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
url_username: "{{ keycloak_binary_download_user | default(omit) }}"
|
url_username: "{{ keycloak_binary_download_user | default(omit) }}"
|
||||||
url_password: "{{ keycloak_binary_download_pass | default(omit) }}"
|
url_password: "{{ keycloak_binary_download_pass | default(omit) }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
run_once: true
|
run_once: true
|
||||||
when:
|
when:
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
product_type: DISTRIBUTION
|
product_type: DISTRIBUTION
|
||||||
product_version: "{{ sso_version.split('.')[:2] | join('.') }}"
|
product_version: "{{ sso_version.split('.')[:2] | join('.') }}"
|
||||||
product_category: "{{ sso_product_category }}"
|
product_category: "{{ sso_product_category }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
register: keycloak_rhn_products
|
register: keycloak_rhn_products
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
client_secret: "{{ rhn_password }}"
|
client_secret: "{{ rhn_password }}"
|
||||||
product_id: "{{ (keycloak_rhn_filtered_products | first).id }}"
|
product_id: "{{ (keycloak_rhn_filtered_products | first).id }}"
|
||||||
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_archive }}"
|
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_archive }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
run_once: true
|
run_once: true
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
url: "{{ keycloak_rhsso_download_url }}"
|
url: "{{ keycloak_rhsso_download_url }}"
|
||||||
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_archive }}"
|
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_archive }}"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
run_once: true
|
run_once: true
|
||||||
when:
|
when:
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
url: "{{ keycloak_url }}/auth/realms/master/protocol/openid-connect/token"
|
url: "{{ keycloak_url }}/auth/realms/master/protocol/openid-connect/token"
|
||||||
method: POST
|
method: POST
|
||||||
body: "client_id={{ keycloak_auth_client }}&username={{ keycloak_admin_user }}&password={{ keycloak_admin_password }}&grant_type=password"
|
body: "client_id={{ keycloak_auth_client }}&username={{ keycloak_admin_user }}&password={{ keycloak_admin_password }}&grant_type=password"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_validate_certs | default(omit) }}"
|
||||||
register: keycloak_auth_response
|
register: keycloak_auth_response
|
||||||
until: keycloak_auth_response.status == 200
|
until: keycloak_auth_response.status == 200
|
||||||
retries: 2
|
retries: 2
|
||||||
@@ -81,6 +81,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_config.health_url }}"
|
url: "{{ keycloak_config.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_validate_certs | default(omit) }}"
|
||||||
register: keycloak_status
|
register: keycloak_status
|
||||||
until: keycloak_status.status == 200
|
until: keycloak_status.status == 200
|
||||||
retries: 25
|
retries: 25
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_config.health_url }}"
|
url: "{{ keycloak_config.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_validate_certs | default(omit) }}"
|
||||||
register: keycloak_status
|
register: keycloak_status
|
||||||
until: keycloak_status.status == 200
|
until: keycloak_status.status == 200
|
||||||
delegate_to: "{{ ansible_play_hosts | first }}"
|
delegate_to: "{{ ansible_play_hosts | first }}"
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
product_type: BUGFIX
|
product_type: BUGFIX
|
||||||
product_version: "{{ sso_version.split('.')[:2] | join('.') }}"
|
product_version: "{{ sso_version.split('.')[:2] | join('.') }}"
|
||||||
product_category: "{{ sso_product_category }}"
|
product_category: "{{ sso_product_category }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
register: keycloak_rhn_products
|
register: keycloak_rhn_products
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
client_secret: "{{ rhn_password }}"
|
client_secret: "{{ rhn_password }}"
|
||||||
product_id: "{{ (keycloak_rhn_filtered_products | sort | last).id }}"
|
product_id: "{{ (keycloak_rhn_filtered_products | sort | last).id }}"
|
||||||
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_patch_bundle }}"
|
dest: "{{ keycloak_local_path.stat.path }}/{{ keycloak_patch_bundle }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_download_validate_certs | default(omit) }}"
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
run_once: true
|
run_once: true
|
||||||
@@ -143,6 +143,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_config.health_url }}"
|
url: "{{ keycloak_config.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_validate_certs | default(omit) }}"
|
||||||
register: keycloak_status
|
register: keycloak_status
|
||||||
until: keycloak_status.status == 200
|
until: keycloak_status.status == 200
|
||||||
retries: 25
|
retries: 25
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak_config.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_config.health_url }}"
|
url: "{{ keycloak_config.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_validate_certs | default(omit) }}"
|
||||||
register: keycloak_status
|
register: keycloak_status
|
||||||
until: keycloak_status.status == 200
|
until: keycloak_status.status == 200
|
||||||
retries: "{{ keycloak_service_start_retries }}"
|
retries: "{{ keycloak_service_start_retries }}"
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ Role Defaults
|
|||||||
|`keycloak_quarkus_additional_env_vars` | List of additional env variables of { key: str, value: str} to be put in sysconfig file, see https://www.keycloak.org/server/all-config | `[]` |
|
|`keycloak_quarkus_additional_env_vars` | List of additional env variables of { key: str, value: str} to be put in sysconfig file, see https://www.keycloak.org/server/all-config | `[]` |
|
||||||
|`keycloak_quarkus_frontend_url`| Deprecated, use `keycloak_quarkus_hostname` instead. | |
|
|`keycloak_quarkus_frontend_url`| Deprecated, use `keycloak_quarkus_hostname` instead. | |
|
||||||
|`keycloak_quarkus_admin_url`| Deprecated, use `keycloak_quarkus_hostname_admin` instead. | |
|
|`keycloak_quarkus_admin_url`| Deprecated, use `keycloak_quarkus_hostname_admin` instead. | |
|
||||||
|`keycloak_quarkus_health_check_url`| Full URL (including scheme, host, path, fragment etc.) used for health check endpoint; keycloak_quarkus_hostname will NOT be prepended; helpful when health checks should happen against http port, but keycloak_quarkus_hostname uses https scheme per default | `` |
|
|`keycloak_quarkus_health_check_url`| Full URL (including scheme, host, path, fragment etc.) used for health check endpoint; keycloak_quarkus_hostname will NOT be prepended; helpful when health checks should happen against http port, but keycloak_quarkus_hostname uses https scheme per default | `{{ keycloak_quarkus_hostname ~ keycloak_quarkus_http_relative_path.rstrip('/') ~ '/' ~ keycloak_quarkus_health_check_url_path }}` |
|
||||||
|`keycloak_quarkus_health_check_url_path`| Path to the health check endpoint; keycloak_quarkus_hostname will be prepended automatically; Note that keycloak_quarkus_health_check_url takes precedence over this property | `realms/master/.well-known/openid-configuration` |
|
|`keycloak_quarkus_health_check_url_path`| Path to the health check endpoint; keycloak_quarkus_hostname will be prepended automatically; Note that keycloak_quarkus_health_check_url takes precedence over this property | `realms/{{ keycloak_quarkus_master_realm }}/.well-known/openid-configuration` |
|
||||||
|`keycloak_quarkus_proxy_headers`| Parse reverse proxy headers (`forwarded` or `xforwarded`) | `""` |
|
|`keycloak_quarkus_proxy_headers`| Parse reverse proxy headers (`forwarded` or `xforwarded`) | `""` |
|
||||||
|`keycloak_quarkus_config_key_store_file`| Path to the configuration key store; only used if `keycloak_quarkus_config_key_store_password` is not empty | `{{ keycloak.home }}/conf/conf_store.p12` if `keycloak_quarkus_config_key_store_password != ''`, else `''` |
|
|`keycloak_quarkus_config_key_store_file`| Path to the configuration key store; only used if `keycloak_quarkus_config_key_store_password` is not empty | `{{ keycloak.home }}/conf/conf_store.p12` if `keycloak_quarkus_config_key_store_password != ''`, else `''` |
|
||||||
|`keycloak_quarkus_config_key_store_password`| Password of the configuration keystore; if non-empty, `keycloak_quarkus_db_pass` will be saved to the keystore at `keycloak_quarkus_config_key_store_file` instead of being written to the configuration file in clear text | `""` |
|
|`keycloak_quarkus_config_key_store_password`| Password of the configuration keystore; if non-empty, `keycloak_quarkus_db_pass` will be saved to the keystore at `keycloak_quarkus_config_key_store_file` instead of being written to the configuration file in clear text | `""` |
|
||||||
@@ -90,6 +90,7 @@ Role Defaults
|
|||||||
|`keycloak_quarkus_restart_health_check`| Whether to wait for successful health check after restart | `true` |
|
|`keycloak_quarkus_restart_health_check`| Whether to wait for successful health check after restart | `true` |
|
||||||
|`keycloak_quarkus_restart_health_check_delay`| Seconds to let pass before starting healch checks | `10` |
|
|`keycloak_quarkus_restart_health_check_delay`| Seconds to let pass before starting healch checks | `10` |
|
||||||
|`keycloak_quarkus_restart_health_check_retries`| Number of attempts for successful health check before failing | `25` |
|
|`keycloak_quarkus_restart_health_check_retries`| Number of attempts for successful health check before failing | `25` |
|
||||||
|
|`keycloak_quarkus_validate_certs`| Whether to validate SSL certificates when performing health checks | `true` |
|
||||||
|`keycloak_quarkus_restart_pause`| Seconds to wait between restarts in HA strategy | `15` |
|
|`keycloak_quarkus_restart_pause`| Seconds to wait between restarts in HA strategy | `15` |
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -186,6 +186,9 @@ keycloak_quarkus_restart_strategy: restart/serial.yml
|
|||||||
keycloak_quarkus_restart_health_check: true
|
keycloak_quarkus_restart_health_check: true
|
||||||
keycloak_quarkus_restart_health_check_delay: 10
|
keycloak_quarkus_restart_health_check_delay: 10
|
||||||
keycloak_quarkus_restart_health_check_retries: 25
|
keycloak_quarkus_restart_health_check_retries: 25
|
||||||
|
keycloak_quarkus_validate_certs: true
|
||||||
|
keycloak_quarkus_health_check_url_path: "realms/{{ keycloak_quarkus_master_realm }}/.well-known/openid-configuration"
|
||||||
|
keycloak_quarkus_health_check_url: "{{ keycloak_quarkus_hostname ~ keycloak_quarkus_http_relative_path.rstrip('/') ~ '/' ~ keycloak_quarkus_health_check_url_path }}"
|
||||||
keycloak_quarkus_restart_pause: 15
|
keycloak_quarkus_restart_pause: 15
|
||||||
|
|
||||||
keycloak_quarkus_force_install: false
|
keycloak_quarkus_force_install: false
|
||||||
|
|||||||
@@ -115,10 +115,11 @@ argument_specs:
|
|||||||
description: "HTTP port"
|
description: "HTTP port"
|
||||||
type: "int"
|
type: "int"
|
||||||
keycloak_quarkus_health_check_url:
|
keycloak_quarkus_health_check_url:
|
||||||
|
default: "{{ keycloak_quarkus_hostname ~ keycloak_quarkus_http_relative_path.rstrip('/') ~ '/' ~ keycloak_quarkus_health_check_url_path }}"
|
||||||
description: "Full URL (including scheme, host, path, fragment etc.) used for health check endpoint; keycloak_quarkus_hostname will NOT be prepended; helpful when health checks should happen against http port, but keycloak_quarkus_hostname uses https scheme per default"
|
description: "Full URL (including scheme, host, path, fragment etc.) used for health check endpoint; keycloak_quarkus_hostname will NOT be prepended; helpful when health checks should happen against http port, but keycloak_quarkus_hostname uses https scheme per default"
|
||||||
type: "str"
|
type: "str"
|
||||||
keycloak_quarkus_health_check_url_path:
|
keycloak_quarkus_health_check_url_path:
|
||||||
default: "realms/master/.well-known/openid-configuration"
|
default: "realms/{{ keycloak_quarkus_master_realm }}/.well-known/openid-configuration"
|
||||||
description: "Path to the health check endpoint; keycloak_quarkus_hostname will be prepended automatically; Note that keycloak_quarkus_health_check_url takes precedence over this property"
|
description: "Path to the health check endpoint; keycloak_quarkus_hostname will be prepended automatically; Note that keycloak_quarkus_health_check_url takes precedence over this property"
|
||||||
type: "str"
|
type: "str"
|
||||||
keycloak_quarkus_https_key_file_enabled:
|
keycloak_quarkus_https_key_file_enabled:
|
||||||
@@ -488,6 +489,10 @@ argument_specs:
|
|||||||
description: "Number of attempts for successful health check before failing"
|
description: "Number of attempts for successful health check before failing"
|
||||||
default: 25
|
default: 25
|
||||||
type: 'int'
|
type: 'int'
|
||||||
|
keycloak_quarkus_validate_certs:
|
||||||
|
description: "Whether to validate SSL certificates when performing health checks"
|
||||||
|
default: true
|
||||||
|
type: "bool"
|
||||||
keycloak_quarkus_show_deprecation_warnings:
|
keycloak_quarkus_show_deprecation_warnings:
|
||||||
default: true
|
default: true
|
||||||
description: "Whether or not deprecation warnings should be shown"
|
description: "Whether or not deprecation warnings should be shown"
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo {{ item.value | quote }} | keytool -noprompt -importpass -alias {{ item.key | quote }} -keystore {{ keycloak_quarkus_config_key_store_file | quote }} -storepass {{ keycloak_quarkus_config_key_store_password | quote }} -storetype PKCS12
|
echo {{ item.value | quote }} | keytool -noprompt -importpass -alias {{ item.key | quote }} -keystore {{ keycloak_quarkus_config_key_store_file | quote }} -storepass {{ keycloak_quarkus_config_key_store_password | quote }} -storetype PKCS12
|
||||||
loop: "{{ store_items }}"
|
loop: "{{ keycloak_quarkus_store_items }}"
|
||||||
no_log: true
|
no_log: true
|
||||||
become: "{{ keycloak_quarkus_config_store_require_privilege_escalation | default(true) }}"
|
become: "{{ keycloak_quarkus_config_store_require_privilege_escalation | default(true) }}"
|
||||||
changed_when: true
|
changed_when: true
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
mode: '0640'
|
mode: '0640'
|
||||||
url_username: "{{ keycloak_quarkus_binary_download_user | default(omit) }}"
|
url_username: "{{ keycloak_quarkus_binary_download_user | default(omit) }}"
|
||||||
url_password: "{{ keycloak_quarkus_binary_download_pass | default(omit) }}"
|
url_password: "{{ keycloak_quarkus_binary_download_pass | default(omit) }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
become: false
|
become: false
|
||||||
run_once: true
|
run_once: true
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
product_type: DISTRIBUTION
|
product_type: DISTRIBUTION
|
||||||
product_version: "{{ rhbk_version }}"
|
product_version: "{{ rhbk_version }}"
|
||||||
product_category: "{{ rhbk_product_category }}"
|
product_category: "{{ rhbk_product_category }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
register: keycloak_quarkus_rhn_products
|
register: keycloak_quarkus_rhn_products
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
product_id: "{{ (keycloak_quarkus_rhn_filtered_products | first).id }}"
|
product_id: "{{ (keycloak_quarkus_rhn_filtered_products | first).id }}"
|
||||||
dest: "{{ keycloak_quarkus_local_path.stat.path }}/{{ keycloak.bundle }}"
|
dest: "{{ keycloak_quarkus_local_path.stat.path }}/{{ keycloak.bundle }}"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
no_log: "{{ omit_rhn_output | default(true) }}"
|
no_log: "{{ omit_rhn_output | default(true) }}"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
run_once: true
|
run_once: true
|
||||||
@@ -243,9 +243,11 @@
|
|||||||
group: "{{ keycloak.service_group }}"
|
group: "{{ keycloak.service_group }}"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
checksum: "{{ item.checksum | default(omit) }}"
|
checksum: "{{ item.checksum | default(omit) }}"
|
||||||
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
||||||
loop: "{{ keycloak_quarkus_providers }}"
|
loop: "{{ keycloak_quarkus_providers }}"
|
||||||
when: item.url is defined and item.url | length > 0
|
when: item.url is defined and item.url | length > 0
|
||||||
|
no_log: "{{ item.maven.password is defined and item.maven.password | length > 0 | default(false) }}"
|
||||||
notify: "{{ ['invalidate keycloak theme cache', 'rebuild keycloak config', 'restart keycloak'] if not item.restart is defined or item.restart else [] }}"
|
notify: "{{ ['invalidate keycloak theme cache', 'rebuild keycloak config', 'restart keycloak'] if not item.restart is defined or item.restart else [] }}"
|
||||||
|
|
||||||
# this requires the `lxml` package to be installed; we redirect this step to localhost such that we do need to install it on the remote hosts
|
# this requires the `lxml` package to be installed; we redirect this step to localhost such that we do need to install it on the remote hosts
|
||||||
@@ -258,6 +260,7 @@
|
|||||||
username: "{{ item.maven.username | default(omit) }}"
|
username: "{{ item.maven.username | default(omit) }}"
|
||||||
password: "{{ item.maven.password | default(omit) }}"
|
password: "{{ item.maven.password | default(omit) }}"
|
||||||
dest: "{{ keycloak_quarkus_local_path.stat.path }}/{{ item.id }}.jar"
|
dest: "{{ keycloak_quarkus_local_path.stat.path }}/{{ item.id }}.jar"
|
||||||
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
delegate_to: "localhost"
|
delegate_to: "localhost"
|
||||||
run_once: true
|
run_once: true
|
||||||
loop: "{{ keycloak_quarkus_providers }}"
|
loop: "{{ keycloak_quarkus_providers }}"
|
||||||
@@ -289,6 +292,7 @@
|
|||||||
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
||||||
loop: "{{ keycloak_quarkus_providers }}"
|
loop: "{{ keycloak_quarkus_providers }}"
|
||||||
when: item.local_path is defined
|
when: item.local_path is defined
|
||||||
|
no_log: "{{ item.maven.password is defined and item.maven.password | length > 0 | default(false) }}"
|
||||||
notify: "{{ ['invalidate keycloak theme cache', 'rebuild keycloak config', 'restart keycloak'] if not item.restart is defined or item.restart else [] }}"
|
notify: "{{ ['invalidate keycloak theme cache', 'rebuild keycloak config', 'restart keycloak'] if not item.restart is defined or item.restart else [] }}"
|
||||||
|
|
||||||
- name: Ensure required folder structure for policies exists
|
- name: Ensure required folder structure for policies exists
|
||||||
@@ -308,6 +312,7 @@
|
|||||||
owner: "{{ keycloak.service_user }}"
|
owner: "{{ keycloak.service_user }}"
|
||||||
group: "{{ keycloak.service_group }}"
|
group: "{{ keycloak.service_group }}"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
|
validate_certs: "{{ keycloak_quarkus_download_validate_certs | default(omit) }}"
|
||||||
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
become: "{{ keycloak_quarkus_install_require_privilege_escalation | default(true) }}"
|
||||||
loop: "{{ keycloak_quarkus_policies }}"
|
loop: "{{ keycloak_quarkus_policies }}"
|
||||||
when: item.url is defined and item.url | length > 0
|
when: item.url is defined and item.url | length > 0
|
||||||
|
|||||||
@@ -123,6 +123,7 @@
|
|||||||
fail_msg: >
|
fail_msg: >
|
||||||
Providers definition incorrect; `id` and one of `spi`, `url`, `local_path`, or `maven` are mandatory. `key` and `value` are mandatory for each property
|
Providers definition incorrect; `id` and one of `spi`, `url`, `local_path`, or `maven` are mandatory. `key` and `value` are mandatory for each property
|
||||||
loop: "{{ keycloak_quarkus_providers }}"
|
loop: "{{ keycloak_quarkus_providers }}"
|
||||||
|
no_log: "{{ item.maven.password is defined and item.maven.password | length > 0 | default(false) }}"
|
||||||
|
|
||||||
- name: "Validate policies"
|
- name: "Validate policies"
|
||||||
ansible.builtin.assert:
|
ansible.builtin.assert:
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak.health_url }}"
|
url: "{{ keycloak.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_quarkus_validate_certs }}"
|
||||||
register: keycloak_quarkus_status
|
register: keycloak_quarkus_status
|
||||||
until: keycloak_quarkus_status.status == 200
|
until: keycloak_quarkus_status.status == 200
|
||||||
retries: "{{ keycloak_quarkus_restart_health_check_retries }}"
|
retries: "{{ keycloak_quarkus_restart_health_check_retries }}"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
- name: "Wait until service becomes active: {{ keycloak.service_name }}"
|
- name: "Wait until service becomes active: {{ keycloak.service_name }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak.health_url }}"
|
url: "{{ keycloak.health_url }}"
|
||||||
|
validate_certs: "{{ keycloak_quarkus_validate_certs }}"
|
||||||
register: keycloak_quarkus_status
|
register: keycloak_quarkus_status
|
||||||
until: keycloak_quarkus_status.status == 200
|
until: keycloak_quarkus_status.status == 200
|
||||||
retries: 25
|
retries: 25
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ keycloak: # noqa var-naming this is an internal dict of interpolated values
|
|||||||
config_dir: "{{ keycloak_quarkus_config_dir }}"
|
config_dir: "{{ keycloak_quarkus_config_dir }}"
|
||||||
bundle: "{{ keycloak_quarkus_archive }}"
|
bundle: "{{ keycloak_quarkus_archive }}"
|
||||||
service_name: "keycloak"
|
service_name: "keycloak"
|
||||||
health_url: "{{ keycloak_quarkus_health_check_url | default(keycloak_quarkus_hostname ~ '/' ~ (keycloak_quarkus_health_check_url_path | default('realms/master/.well-known/openid-configuration'))) }}"
|
health_url: "{{ keycloak_quarkus_health_check_url }}"
|
||||||
cli_path: "{{ keycloak_quarkus_home }}/bin/kcadm.sh"
|
cli_path: "{{ keycloak_quarkus_home }}/bin/kcadm.sh"
|
||||||
service_user: "{{ keycloak_quarkus_service_user }}"
|
service_user: "{{ keycloak_quarkus_service_user }}"
|
||||||
service_group: "{{ keycloak_quarkus_service_group }}"
|
service_group: "{{ keycloak_quarkus_service_group }}"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/realms/master/protocol/openid-connect/token"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/realms/master/protocol/openid-connect/token"
|
||||||
method: POST
|
method: POST
|
||||||
body: "client_id={{ keycloak_realm_auth_client }}&username={{ keycloak_realm_admin_user }}&password={{ keycloak_realm_admin_password }}&grant_type=password"
|
body: "client_id={{ keycloak_realm_auth_client }}&username={{ keycloak_realm_admin_user }}&password={{ keycloak_realm_admin_password }}&grant_type=password"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
||||||
register: keycloak_realm_auth_response
|
register: keycloak_realm_auth_response
|
||||||
until: keycloak_realm_auth_response.status == 200
|
until: keycloak_realm_auth_response.status == 200
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}"
|
||||||
method: GET
|
method: GET
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
status_code:
|
status_code:
|
||||||
- 200
|
- 200
|
||||||
- 404
|
- 404
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms"
|
||||||
method: POST
|
method: POST
|
||||||
body: "{{ lookup('template', 'realm.json.j2') }}"
|
body: "{{ lookup('template', 'realm.json.j2') }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
headers:
|
headers:
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
||||||
auth_username: "{{ keycloak_realm_admin_user }}"
|
auth_username: "{{ keycloak_realm_admin_user }}"
|
||||||
auth_password: "{{ keycloak_realm_admin_password }}"
|
auth_password: "{{ keycloak_realm_admin_password }}"
|
||||||
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
realm: "{{ item.realm | default(keycloak_realm_realm) }}"
|
realm: "{{ item.realm | default(keycloak_realm_realm) }}"
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
state: present
|
state: present
|
||||||
@@ -72,6 +73,7 @@
|
|||||||
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
||||||
auth_username: "{{ keycloak_realm_admin_user }}"
|
auth_username: "{{ keycloak_realm_admin_user }}"
|
||||||
auth_password: "{{ keycloak_realm_admin_password }}"
|
auth_password: "{{ keycloak_realm_admin_password }}"
|
||||||
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
realm: "{{ item.realm | default(keycloak_realm_realm) }}"
|
realm: "{{ item.realm | default(keycloak_realm_realm) }}"
|
||||||
default_roles: "{{ item.roles | default(omit) }}"
|
default_roles: "{{ item.roles | default(omit) }}"
|
||||||
client_id: "{{ item.client_id | default(omit) }}"
|
client_id: "{{ item.client_id | default(omit) }}"
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
auth_realm: "{{ keycloak_realm_auth_realm }}"
|
||||||
auth_username: "{{ keycloak_realm_admin_user }}"
|
auth_username: "{{ keycloak_realm_admin_user }}"
|
||||||
auth_password: "{{ keycloak_realm_admin_password }}"
|
auth_password: "{{ keycloak_realm_admin_password }}"
|
||||||
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
state: present
|
state: present
|
||||||
loop: "{{ client.roles | flatten }}"
|
loop: "{{ client.roles | flatten }}"
|
||||||
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
method: PUT
|
method: PUT
|
||||||
body:
|
body:
|
||||||
accessTokenLifespan: 300
|
accessTokenLifespan: 300
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
status_code:
|
status_code:
|
||||||
- 200
|
- 200
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
- name: "Check if User Already Exists"
|
- name: "Check if User Already Exists"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
headers:
|
headers:
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
register: keycloak_realm_user_search_result
|
register: keycloak_realm_user_search_result
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
email: "{{ user.email | default(omit) }}"
|
email: "{{ user.email | default(omit) }}"
|
||||||
firstName: "{{ user.firstName | default(omit) }}"
|
firstName: "{{ user.firstName | default(omit) }}"
|
||||||
lastName: "{{ user.lastName | default(omit) }}"
|
lastName: "{{ user.lastName | default(omit) }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
headers:
|
headers:
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
- name: "Get User"
|
- name: "Get User"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
headers:
|
headers:
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
register: keycloak_realm_user
|
register: keycloak_realm_user
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
type: password
|
type: password
|
||||||
temporary: false
|
temporary: false
|
||||||
value: "{{ user.password }}"
|
value: "{{ user.password }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
status_code:
|
status_code:
|
||||||
- 200
|
- 200
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ client_role.realm | default(keycloak_realm_realm) }}"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ client_role.realm | default(keycloak_realm_realm) }}"
|
||||||
method: GET
|
method: GET
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
status_code:
|
status_code:
|
||||||
- 200
|
- 200
|
||||||
headers:
|
headers:
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
default(keycloak_realm_realm) }}/users/{{ (keycloak_realm_user.json | first).id }}/role-mappings/clients/{{ (keycloak_realm_create_client_result.results | \
|
default(keycloak_realm_realm) }}/users/{{ (keycloak_realm_user.json | first).id }}/role-mappings/clients/{{ (keycloak_realm_create_client_result.results | \
|
||||||
selectattr('end_state.clientId', 'equalto', client_role.client) | list | first).end_state.id }}/available"
|
selectattr('end_state.clientId', 'equalto', client_role.client) | list | first).end_state.id }}/available"
|
||||||
method: GET
|
method: GET
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
status_code:
|
status_code:
|
||||||
- 200
|
- 200
|
||||||
headers:
|
headers:
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
containerId: "{{ item.containerId }}"
|
containerId: "{{ item.containerId }}"
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
composite: "{{ item.composite }}"
|
composite: "{{ item.composite }}"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
body_format: json
|
body_format: json
|
||||||
headers:
|
headers:
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
- name: "Get User {{ user.username }}"
|
- name: "Get User {{ user.username }}"
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/admin/realms/{{ keycloak_realm_realm }}/users?username={{ user.username }}"
|
||||||
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
headers:
|
headers:
|
||||||
validate_certs: false
|
|
||||||
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
Authorization: "Bearer {{ keycloak_realm_auth_response.json.access_token }}"
|
||||||
register: keycloak_realm_user
|
register: keycloak_realm_user
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/realms/master/protocol/openid-connect/token"
|
url: "{{ keycloak_realm_url }}{{ keycloak_realm_context }}/realms/master/protocol/openid-connect/token"
|
||||||
method: POST
|
method: POST
|
||||||
body: "client_id={{ keycloak_realm_auth_client }}&username={{ keycloak_realm_admin_user }}&password={{ keycloak_realm_admin_password }}&grant_type=password"
|
body: "client_id={{ keycloak_realm_auth_client }}&username={{ keycloak_realm_admin_user }}&password={{ keycloak_realm_admin_password }}&grant_type=password"
|
||||||
validate_certs: false
|
validate_certs: "{{ keycloak_realm_validate_certs | default(omit) }}"
|
||||||
register: keycloak_realm_auth_response
|
register: keycloak_realm_auth_response
|
||||||
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
no_log: "{{ keycloak_realm_no_log | default('True') }}"
|
||||||
until: keycloak_realm_auth_response.status == 200
|
until: keycloak_realm_auth_response.status == 200
|
||||||
|
|||||||
Reference in New Issue
Block a user