Merge pull request #31 from guidograzioli/ensure_java_home
Make sure systemd unit starts with selected java JVMmain
commit
fbc0d7ab99
|
@ -3,6 +3,7 @@
|
||||||
hosts: all
|
hosts: all
|
||||||
vars:
|
vars:
|
||||||
keycloak_admin_password: "remembertochangeme"
|
keycloak_admin_password: "remembertochangeme"
|
||||||
|
keycloak_jvm_package: java-11-openjdk-headless
|
||||||
roles:
|
roles:
|
||||||
- role: keycloak
|
- role: keycloak
|
||||||
tasks:
|
tasks:
|
||||||
|
|
|
@ -8,5 +8,7 @@
|
||||||
|
|
||||||
- name: Install sudo
|
- name: Install sudo
|
||||||
ansible.builtin.yum:
|
ansible.builtin.yum:
|
||||||
name: sudo
|
name:
|
||||||
|
- sudo
|
||||||
|
- java-1.8.0-openjdk
|
||||||
state: present
|
state: present
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
---
|
---
|
||||||
- name: Verify
|
- name: Verify
|
||||||
hosts: all
|
hosts: all
|
||||||
|
vars:
|
||||||
|
keycloak_admin_password: "remembertochangeme"
|
||||||
|
keycloak_jvm_package: java-11-openjdk-headless
|
||||||
|
keycloak_port: http://localhost:8080
|
||||||
|
keycloak_management_port: http://localhost:9990
|
||||||
tasks:
|
tasks:
|
||||||
- name: Populate service facts
|
- name: Populate service facts
|
||||||
ansible.builtin.service_facts:
|
ansible.builtin.service_facts:
|
||||||
|
@ -9,3 +14,16 @@
|
||||||
that:
|
that:
|
||||||
- ansible_facts.services["keycloak.service"]["state"] == "running"
|
- ansible_facts.services["keycloak.service"]["state"] == "running"
|
||||||
- ansible_facts.services["keycloak.service"]["status"] == "enabled"
|
- ansible_facts.services["keycloak.service"]["status"] == "enabled"
|
||||||
|
- name: Verify we are running on requested jvm
|
||||||
|
shell: |
|
||||||
|
ps -ef | grep /usr/lib/jvm/java-11 | grep -v grep
|
||||||
|
- name: Verify token api call
|
||||||
|
ansible.builtin.uri:
|
||||||
|
url: "{{ keycloak_port }}/auth/realms/master/protocol/openid-connect/token"
|
||||||
|
method: POST
|
||||||
|
body: "client_id=admin-cli&username=admin&password={{ keycloak_admin_password }}&grant_type=password"
|
||||||
|
validate_certs: no
|
||||||
|
register: keycloak_auth_response
|
||||||
|
until: keycloak_auth_response.status == 200
|
||||||
|
retries: 2
|
||||||
|
delay: 2
|
|
@ -6,4 +6,4 @@
|
||||||
collections:
|
collections:
|
||||||
- middleware_automation.keycloak
|
- middleware_automation.keycloak
|
||||||
roles:
|
roles:
|
||||||
- middleware_automation.keycloak.keycloak
|
- keycloak
|
||||||
|
|
|
@ -60,13 +60,14 @@ Role Defaults
|
||||||
|`keycloak_jgroups_port`| jgroups cluster tcp port | `7600` |
|
|`keycloak_jgroups_port`| jgroups cluster tcp port | `7600` |
|
||||||
|`keycloak_management_http_port`| Management port | `9990` |
|
|`keycloak_management_http_port`| Management port | `9990` |
|
||||||
|`keycloak_management_https_port`| TLS management port | `9993` |
|
|`keycloak_management_https_port`| TLS management port | `9993` |
|
||||||
|`keycloak_java_opts`| Additional JVM options | `-Xms1024m -Xmx2048m` |
|
|
||||||
|`keycloak_prefer_ipv4`| Prefer IPv4 stack and addresses for port binding | `True` |
|
|`keycloak_prefer_ipv4`| Prefer IPv4 stack and addresses for port binding | `True` |
|
||||||
|`keycloak_config_standalone_xml`| filename for configuration | `keycloak.xml` |
|
|`keycloak_config_standalone_xml`| filename for configuration | `keycloak.xml` |
|
||||||
|`keycloak_service_user`| posix account username | `keycloak` |
|
|`keycloak_service_user`| posix account username | `keycloak` |
|
||||||
|`keycloak_service_group`| posix account group | `keycloak` |
|
|`keycloak_service_group`| posix account group | `keycloak` |
|
||||||
|`keycloak_service_pidfile`| pid file path for service | `/run/keycloak.pid` |
|
|`keycloak_service_pidfile`| pid file path for service | `/run/keycloak.pid` |
|
||||||
|`keycloak_jvm_package`| RHEL java package runtime | `java-1.8.0-openjdk-devel` |
|
|`keycloak_jvm_package`| RHEL java package runtime | `java-1.8.0-openjdk-devel` |
|
||||||
|
|`keycloak_java_home`| JAVA_HOME of installed JRE, leave empty for using specified keycloak_jvm_package RPM path | `None` |
|
||||||
|
|`keycloak_java_opts`| Additional JVM options | `-Xms1024m -Xmx2048m` |
|
||||||
|
|
||||||
|
|
||||||
* Install options
|
* Install options
|
||||||
|
|
|
@ -21,7 +21,8 @@ keycloak_rhsso_enable: "{{ True if rhsso_rhn_id is defined and rhn_username is d
|
||||||
keycloak_offline_install: False
|
keycloak_offline_install: False
|
||||||
|
|
||||||
### Install location and service settings
|
### Install location and service settings
|
||||||
keycloak_jvm_package: java-1.8.0-openjdk-devel
|
keycloak_jvm_package: java-1.8.0-openjdk-headless
|
||||||
|
keycloak_java_home:
|
||||||
keycloak_dest: /opt/keycloak
|
keycloak_dest: /opt/keycloak
|
||||||
keycloak_jboss_home: "{{ keycloak_rhsso_installdir if keycloak_rhsso_enable else keycloak_installdir }}"
|
keycloak_jboss_home: "{{ keycloak_rhsso_installdir if keycloak_rhsso_enable else keycloak_installdir }}"
|
||||||
keycloak_config_dir: "{{ keycloak_jboss_home }}/standalone/configuration"
|
keycloak_config_dir: "{{ keycloak_jboss_home }}/standalone/configuration"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
---
|
---
|
||||||
- name: "Restart {{ keycloak.service_name }}"
|
- name: "Restart handler"
|
||||||
ansible.builtin.include_tasks: restart_keycloak.yml
|
ansible.builtin.include_tasks: restart_keycloak.yml
|
||||||
listen: "restart keycloak"
|
listen: "restart keycloak"
|
||||||
|
|
|
@ -81,6 +81,9 @@ argument_specs:
|
||||||
default: "java-1.8.0-openjdk-devel"
|
default: "java-1.8.0-openjdk-devel"
|
||||||
description: "RHEL java package runtime rpm"
|
description: "RHEL java package runtime rpm"
|
||||||
type: "str"
|
type: "str"
|
||||||
|
keycloak_java_home:
|
||||||
|
description: "JAVA_HOME of installed JRE, leave empty for using specified keycloak_jvm_package RPM path"
|
||||||
|
type: "str"
|
||||||
keycloak_dest:
|
keycloak_dest:
|
||||||
# line 24 of keycloak/defaults/main.yml
|
# line 24 of keycloak/defaults/main.yml
|
||||||
default: "/opt/keycloak"
|
default: "/opt/keycloak"
|
||||||
|
|
|
@ -71,9 +71,10 @@
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Download keycloak archive
|
- name: Download keycloak archive
|
||||||
ansible.builtin.get_url:
|
ansible.builtin.get_url: # noqa risky-file-permissions delegated, uses controller host user
|
||||||
url: "{{ keycloak_download_url }}"
|
url: "{{ keycloak_download_url }}"
|
||||||
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
||||||
|
mode: 0640
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when:
|
when:
|
||||||
- archive_path is defined
|
- archive_path is defined
|
||||||
|
@ -99,9 +100,10 @@
|
||||||
- keycloak_rhn_url in keycloak_rhsso_download_url
|
- keycloak_rhn_url in keycloak_rhsso_download_url
|
||||||
|
|
||||||
- name: Download rhsso archive from alternate location
|
- name: Download rhsso archive from alternate location
|
||||||
ansible.builtin.get_url:
|
ansible.builtin.get_url: # noqa risky-file-permissions delegated, uses controller host user
|
||||||
url: "{{ keycloak_rhsso_download_url }}"
|
url: "{{ keycloak_rhsso_download_url }}"
|
||||||
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
||||||
|
mode: 0640
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when:
|
when:
|
||||||
- archive_path is defined
|
- archive_path is defined
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
dest: "{{ patch_archive }}"
|
dest: "{{ patch_archive }}"
|
||||||
owner: "{{ keycloak_service_user }}"
|
owner: "{{ keycloak_service_user }}"
|
||||||
group: "{{ keycloak_service_group }}"
|
group: "{{ keycloak_service_group }}"
|
||||||
mode: 0750
|
mode: 0640
|
||||||
register: new_version_downloaded
|
register: new_version_downloaded
|
||||||
when:
|
when:
|
||||||
- not patch_archive_path.stat.exists
|
- not patch_archive_path.stat.exists
|
||||||
|
@ -83,5 +83,5 @@
|
||||||
success_msg: "Patch installation successful"
|
success_msg: "Patch installation successful"
|
||||||
|
|
||||||
- name: "Skipping patch"
|
- name: "Skipping patch"
|
||||||
debug:
|
ansible.builtin.debug:
|
||||||
msg: "Latest cumulative patch {{ rhsso_rhn_ids[keycloak_rhsso_version].latest_cp.v }} already installed, skipping patch installation."
|
msg: "Latest cumulative patch {{ rhsso_rhn_ids[keycloak_rhsso_version].latest_cp.v }} already installed, skipping patch installation."
|
||||||
|
|
|
@ -9,6 +9,15 @@
|
||||||
notify:
|
notify:
|
||||||
- restart keycloak
|
- restart keycloak
|
||||||
|
|
||||||
|
- name: Determine JAVA_HOME for selected JVM RPM # noqa blocked_modules
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
set -o pipefail
|
||||||
|
rpm -ql {{ keycloak_jvm_package }} | grep -Po '/usr/lib/jvm/.*(?=/bin/java$)'
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
changed_when: False
|
||||||
|
register: rpm_java_home
|
||||||
|
|
||||||
- name: "Configure sysconfig file for {{ keycloak.service_name }} service"
|
- name: "Configure sysconfig file for {{ keycloak.service_name }} service"
|
||||||
become: yes
|
become: yes
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
@ -17,6 +26,8 @@
|
||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
mode: 0644
|
mode: 0644
|
||||||
|
vars:
|
||||||
|
keycloak_rpm_java_home: "{{ rpm_java_home.stdout }}"
|
||||||
notify:
|
notify:
|
||||||
- restart keycloak
|
- restart keycloak
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ checkEnvVar() {
|
||||||
# for testing outside systemd
|
# for testing outside systemd
|
||||||
. /etc/sysconfig/keycloak
|
. /etc/sysconfig/keycloak
|
||||||
|
|
||||||
readonly KEYCLOAK_HOME={{ keycloak_jboss_home }}
|
readonly KEYCLOAK_HOME={{ keycloak.home }}
|
||||||
readonly KEYCLOAK_BIND_ADDRESS=${KEYCLOAK_BIND_ADDRESS}
|
readonly KEYCLOAK_BIND_ADDRESS=${KEYCLOAK_BIND_ADDRESS}
|
||||||
readonly KEYCLOAK_HTTP_PORT=${KEYCLOAK_HTTP_PORT}
|
readonly KEYCLOAK_HTTP_PORT=${KEYCLOAK_HTTP_PORT}
|
||||||
readonly KEYCLOAK_HTTPS_PORT=${KEYCLOAK_HTTPS_PORT}
|
readonly KEYCLOAK_HTTPS_PORT=${KEYCLOAK_HTTPS_PORT}
|
||||||
|
@ -27,7 +27,7 @@ readonly KEYCLOAK_PIDFILE={{ keycloak_service_pidfile }}
|
||||||
|
|
||||||
set -u
|
set -u
|
||||||
if [ ! -d "${KEYCLOAK_HOME}" ]; then
|
if [ ! -d "${KEYCLOAK_HOME}" ]; then
|
||||||
echo "KEYCLOAK_HOME (${KEYCLOAK_HOME}) is not a director or does not exists."
|
echo "KEYCLOAK_HOME (${KEYCLOAK_HOME}) is not a directory or does not exists."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# {{ ansible_managed }}
|
# {{ ansible_managed }}
|
||||||
JAVA_OPTS='{{ keycloak_java_opts }}'
|
JAVA_OPTS='{{ keycloak_java_opts }}'
|
||||||
JBOSS_HOME={{ keycloak_jboss_home }}
|
JAVA_HOME={{ keycloak_java_home | default(keycloak_rpm_java_home, true) }}
|
||||||
|
JBOSS_HOME={{ keycloak.home }}
|
||||||
KEYCLOAK_BIND_ADDRESS={{ keycloak_bind_address }}
|
KEYCLOAK_BIND_ADDRESS={{ keycloak_bind_address }}
|
||||||
KEYCLOAK_HTTP_PORT={{ keycloak_http_port }}
|
KEYCLOAK_HTTP_PORT={{ keycloak_http_port }}
|
||||||
KEYCLOAK_HTTPS_PORT={{ keycloak_https_port }}
|
KEYCLOAK_HTTPS_PORT={{ keycloak_https_port }}
|
||||||
|
|
|
@ -52,9 +52,10 @@
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Download keycloak archive
|
- name: Download keycloak archive
|
||||||
ansible.builtin.get_url:
|
ansible.builtin.get_url: # noqa risky-file-permissions delegated, uses controller host user
|
||||||
url: "{{ keycloak_quarkus_download_url }}"
|
url: "{{ keycloak_quarkus_download_url }}"
|
||||||
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
dest: "{{ local_path.stat.path }}/{{ keycloak.bundle }}"
|
||||||
|
mode: 0640
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when:
|
when:
|
||||||
- archive_path is defined
|
- archive_path is defined
|
||||||
|
|
Loading…
Reference in New Issue