File tree 22 files changed +222
-26
lines changed
22 files changed +222
-26
lines changed Original file line number Diff line number Diff line change
1
+ python3-dev [compile platform:dpkg]
1
2
python3-devel [compile platform:rpm]
2
3
python39-devel [compile platform:centos-8 platform:rhel-8]
3
- git-lfs [platform:rpm]
4
- python3-netaddr [platform:rpm]
5
- python3-lxml [platform:rpm]
6
- python3-jmespath [platform:rpm]
7
- python3-requests [platform:rpm]
4
+ git-lfs [platform:rpm platform:dpkg ]
5
+ python3-netaddr [platform:rpm platform:dpkg ]
6
+ python3-lxml [platform:rpm platform:dpkg ]
7
+ python3-jmespath [platform:rpm platform:dpkg ]
8
+ python3-requests [platform:rpm platform:dpkg ]
8
9
Original file line number Diff line number Diff line change 18
18
name :
19
19
- java-1.8.0-openjdk
20
20
state : present
21
+ when : ansible_facts['os_family'] == "RedHat"
21
22
22
-
23
+ - name : Install JDK8
24
+ become : yes
25
+ ansible.builtin.apt :
26
+ name :
27
+ - openjdk-8-jdk
28
+ state : present
29
+ when : ansible_facts['os_family'] == "Debian"
Original file line number Diff line number Diff line change 2
2
- name : Prepare
3
3
hosts : all
4
4
tasks :
5
+ - name : Install sudo
6
+ ansible.builtin.apt :
7
+ name :
8
+ - sudo
9
+ - openjdk-17-jdk-headless
10
+ state : present
11
+ when :
12
+ - ansible_facts.os_family == 'Debian'
13
+
5
14
- name : Install sudo
6
15
ansible.builtin.yum :
7
16
name :
8
17
- sudo
9
18
- java-17-openjdk-headless
10
19
state : present
20
+ when :
21
+ - ansible_facts.os_family == 'RedHat'
11
22
23
+ - name : Link default logs directory
24
+ ansible.builtin.file :
25
+ state : link
26
+ src : " {{ item }}"
27
+ dest : /opt/openjdk
28
+ force : true
29
+ with_fileglob :
30
+ - /usr/lib/jvm/java-17-openjdk*
31
+ when :
32
+ - ansible_facts.os_family == "Debian"
33
+
12
34
- name : Link default logs directory
13
35
ansible.builtin.file :
14
36
state : link
15
37
src : /usr/lib/jvm/jre-17-openjdk
16
38
dest : /opt/openjdk
17
39
force : true
40
+ when :
41
+ - ansible_facts.os_family == "RedHat"
18
42
19
43
- name : " Display hera_home if defined."
20
44
ansible.builtin.set_fact :
Original file line number Diff line number Diff line change 3
3
hosts : all
4
4
tasks :
5
5
- name : Install sudo
6
- ansible.builtin.yum :
6
+ ansible.builtin.package :
7
7
name : sudo
8
8
state : present
9
9
Original file line number Diff line number Diff line change @@ -10,6 +10,7 @@ Requirements
10
10
This role requires the ` python3-netaddr ` library installed on the controller node.
11
11
12
12
* to install via yum/dnf: ` dnf install python3-netaddr `
13
+ * to install via apt: ` apt install python3-netaddr `
13
14
* or via pip: ` pip install netaddr==0.8.0 `
14
15
* or via the collection: ` pip install -r requirements.txt `
15
16
Original file line number Diff line number Diff line change @@ -8,7 +8,8 @@ keycloak_installdir: "{{ keycloak_dest }}/keycloak-{{ keycloak_version }}"
8
8
keycloak_offline_install : false
9
9
10
10
# ## Install location and service settings
11
- keycloak_jvm_package : java-1.8.0-openjdk-headless
11
+ keycloak_jvm_package : " {{ 'java-1.8.0-openjdk-headless' if ansible_facts.os_family == 'RedHat' else 'openjdk-8-jdk-headless' }}"
12
+
12
13
keycloak_java_home :
13
14
keycloak_dest : /opt/keycloak
14
15
keycloak_jboss_home : " {{ keycloak_installdir }}"
@@ -33,6 +34,7 @@ keycloak_service_startlimitburst: "5"
33
34
keycloak_service_restartsec : " 10s"
34
35
35
36
keycloak_configure_firewalld : false
37
+ keycloak_configure_iptables : false
36
38
37
39
# ## administrator console password
38
40
keycloak_admin_password : ' '
Original file line number Diff line number Diff line change @@ -11,6 +11,11 @@ argument_specs:
11
11
default : " keycloak-legacy-{{ keycloak_version }}.zip"
12
12
description : " keycloak install archive filename"
13
13
type : " str"
14
+ keycloak_configure_iptables :
15
+ # line 33 of keycloak/defaults/main.yml
16
+ default : false
17
+ description : " Ensure iptables is running and configure keycloak ports"
18
+ type : " bool"
14
19
keycloak_configure_firewalld :
15
20
# line 33 of keycloak/defaults/main.yml
16
21
default : false
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Include firewall config tasks
3
+ ansible.builtin.include_tasks : iptables.yml
4
+ when : keycloak_configure_iptables
5
+ tags :
6
+ - firewall
Original file line number Diff line number Diff line change 4
4
register : rpm_info
5
5
changed_when : false
6
6
failed_when : false
7
+ when : ansible_facts.os_family == "RedHat"
7
8
8
9
- name : " Add missing packages to the yum install list"
9
10
ansible.builtin.set_fact :
10
11
packages_to_install : " {{ packages_to_install | default([]) + rpm_info.stdout_lines | map('regex_findall', 'package (.+) is not installed$') | default([]) | flatten }}"
12
+ when : ansible_facts.os_family == "RedHat"
11
13
12
14
- name : " Install packages: {{ packages_to_install }}"
13
15
become : true
14
16
ansible.builtin.yum :
15
17
name : " {{ packages_to_install }}"
16
18
state : present
17
- when : packages_to_install | default([]) | length > 0
19
+ when :
20
+ - packages_to_install | default([]) | length > 0
21
+ - ansible_facts.os_family == "RedHat"
22
+
23
+ - name : " Install packages: {{ packages_list }}"
24
+ become : true
25
+ ansible.builtin.package :
26
+ name : " {{ packages_list }}"
27
+ state : present
28
+ when :
29
+ - packages_list | default([]) | length > 0
30
+ - ansible_facts.os_family == "Debian"
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Ensure required package iptables are installed
3
+ ansible.builtin.include_tasks : fastpackages.yml
4
+ vars :
5
+ packages_list :
6
+ - iptables
7
+
8
+ - name : " Configure firewall ports for {{ keycloak.service_name }}"
9
+ become : true
10
+ ansible.builtin.iptables :
11
+ destination_port : " {{ item }}"
12
+ action : " insert"
13
+ rule_num : 6 # magic number I forget why
14
+ chain : " INPUT"
15
+ policy : " ACCEPT"
16
+ protocol : tcp
17
+ loop :
18
+ - " {{ keycloak_http_port }}"
19
+ - " {{ keycloak_https_port }}"
20
+ - " {{ keycloak_management_http_port }}"
21
+ - " {{ keycloak_management_https_port }}"
22
+ - " {{ keycloak_jgroups_port }}"
23
+ - " {{ keycloak_ajp_port }}"
Original file line number Diff line number Diff line change 5
5
tags :
6
6
- prereqs
7
7
8
- - name : Include firewall config tasks
9
- ansible.builtin.include_tasks : firewalld .yml
10
- when : keycloak_configure_firewalld
8
+ - name : Debian specific tasks
9
+ ansible.builtin.include_tasks : debian .yml
10
+ when : ansible_facts.os_family == "Debian"
11
11
tags :
12
- - firewall
12
+ - unbound
13
+
14
+ - name : RedHat specific tasks
15
+ ansible.builtin.include_tasks : redhat.yml
16
+ when : ansible_facts.os_family == "RedHat"
17
+ tags :
18
+ - unbound
13
19
14
20
- name : Include install tasks
15
21
ansible.builtin.include_tasks : install.yml
26
32
when :
27
33
- sso_apply_patches is defined and sso_apply_patches
28
34
- sso_enable is defined and sso_enable
35
+ - ansible_facts.os_family == "RedHat"
29
36
tags :
30
37
- install
31
38
- patch
Original file line number Diff line number Diff line change 42
42
packages_list :
43
43
- " {{ keycloak_jvm_package }}"
44
44
- unzip
45
- - procps-ng
46
- - initscripts
47
- - tzdata-java
45
+ - " {{ ' procps-ng' if ansible_facts.os_family == 'RedHat' else 'procps' }} "
46
+ - " {{ ' initscripts' if ansible_facts.os_family == 'RedHat' else 'apt' }} "
47
+ - " {{ ' tzdata-java' if ansible_facts.os_family == 'RedHat' else 'tzdata' }} "
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Include firewall config tasks
3
+ ansible.builtin.include_tasks : firewalld.yml
4
+ when : keycloak_configure_firewalld
5
+ tags :
6
+ - firewall
Original file line number Diff line number Diff line change 10
10
notify :
11
11
- restart keycloak
12
12
13
+ - name : Determine JAVA_HOME for selected JVM RPM
14
+ ansible.builtin.set_fact :
15
+ rpm_java_home : " /lib/jvm/java-{{ keycloak_jvm_package | regex_search('(?<=java-)[0-9.]+') }}-openjdk-{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
16
+ when :
17
+ - ansible_facts.os_family == 'Debian'
18
+
13
19
- name : Determine JAVA_HOME for selected JVM RPM
14
20
ansible.builtin.set_fact :
15
21
rpm_java_home : " /etc/alternatives/jre_{{ keycloak_jvm_package | regex_search('(?<=java-)[0-9.]+') }}"
22
+ when :
23
+ - ansible_facts.os_family == 'RedHat'
24
+
25
+ - name : " Configure sysconfig file for {{ keycloak.service_name }} service"
26
+ become : true
27
+ ansible.builtin.template :
28
+ src : keycloak-sysconfig.j2
29
+ dest : /etc/default/keycloak
30
+ owner : root
31
+ group : root
32
+ mode : 0644
33
+ vars :
34
+ keycloak_rpm_java_home : " {{ rpm_java_home }}"
35
+ when :
36
+ - ansible_facts.os_family == "Debian"
37
+ notify :
38
+ - restart keycloak
16
39
17
40
- name : " Configure sysconfig file for {{ keycloak.service_name }} service"
18
41
become : true
24
47
mode : 0644
25
48
vars :
26
49
keycloak_rpm_java_home : " {{ rpm_java_home }}"
50
+ when :
51
+ - ansible_facts.os_family == "RedHat"
27
52
notify :
28
53
- restart keycloak
29
54
Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ keycloak_quarkus_installdir: "{{ keycloak_quarkus_dest }}/keycloak-{{ keycloak_q
9
9
keycloak_quarkus_offline_install : false
10
10
11
11
# ## Install location and service settings
12
- keycloak_quarkus_jvm_package : java-17-openjdk-headless
12
+ keycloak_quarkus_jvm_package : " {{ ' java-17-openjdk-headless' if ansible_facts.os_family == 'RedHat' else 'openjdk-17-jdk-headless' }} "
13
13
keycloak_quarkus_java_home :
14
14
keycloak_quarkus_dest : /opt/keycloak
15
15
keycloak_quarkus_home : " {{ keycloak_quarkus_installdir }}"
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Include firewall config tasks
3
+ ansible.builtin.include_tasks : iptables.yml
4
+ when : keycloak_configure_iptables
5
+ tags :
6
+ - firewall
Original file line number Diff line number Diff line change 4
4
register : rpm_info
5
5
changed_when : false
6
6
failed_when : false
7
+ when : ansible_facts.os_family == "RedHat"
7
8
8
9
- name : " Add missing packages to the yum install list"
9
10
ansible.builtin.set_fact :
10
11
packages_to_install : " {{ packages_to_install | default([]) + rpm_info.stdout_lines | map('regex_findall', 'package (.+) is not installed$') | default([]) | flatten }}"
12
+ when : ansible_facts.os_family == "RedHat"
11
13
12
14
- name : " Install packages: {{ packages_to_install }}"
13
15
become : true
14
16
ansible.builtin.yum :
15
17
name : " {{ packages_to_install }}"
16
18
state : present
17
- when : packages_to_install | default([]) | length > 0
19
+ when :
20
+ - packages_to_install | default([]) | length > 0
21
+ - ansible_facts.os_family == "RedHat"
22
+
23
+ - name : " Install packages: {{ packages_list }}"
24
+ become : true
25
+ ansible.builtin.package :
26
+ name : " {{ packages_list }}"
27
+ state : present
28
+ when :
29
+ - packages_list | default([]) | length > 0
30
+ - ansible_facts.os_family == "Debian"
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Ensure required package iptables are installed
3
+ ansible.builtin.include_tasks : fastpackages.yml
4
+ vars :
5
+ packages_list :
6
+ - iptables
7
+
8
+ - name : " Configure firewall ports for {{ keycloak.service_name }}"
9
+ become : true
10
+ ansible.builtin.iptables :
11
+ destination_port : " {{ item }}"
12
+ action : " insert"
13
+ rule_num : 6 # magic number I forget why
14
+ chain : " INPUT"
15
+ policy : " ACCEPT"
16
+ protocol : tcp
17
+ loop :
18
+ - " {{ keycloak_quarkus_http_port }}"
19
+ - " {{ keycloak_quarkus_https_port }}"
20
+ - " {{ keycloak_quarkus_jgroups_port }}"
Original file line number Diff line number Diff line change 5
5
tags :
6
6
- prereqs
7
7
8
- - name : Include firewall config tasks
9
- ansible.builtin.include_tasks : firewalld .yml
10
- when : keycloak_quarkus_configure_firewalld
8
+ - name : Debian specific tasks
9
+ ansible.builtin.include_tasks : debian .yml
10
+ when : ansible_facts.os_family == "Debian"
11
11
tags :
12
- - firewall
12
+ - unbound
13
+
14
+ - name : RedHat specific tasks
15
+ ansible.builtin.include_tasks : redhat.yml
16
+ when : ansible_facts.os_family == "RedHat"
17
+ tags :
18
+ - unbound
13
19
14
20
- name : Include install tasks
15
21
ansible.builtin.include_tasks : install.yml
Original file line number Diff line number Diff line change 29
29
packages_list :
30
30
- " {{ keycloak_quarkus_jvm_package }}"
31
31
- unzip
32
- - procps-ng
33
- - initscripts
34
- - tzdata-java
32
+ - " {{ ' procps-ng' if ansible_facts.os_family == 'RedHat' else 'procps' }} "
33
+ - " {{ ' initscripts' if ansible_facts.os_family == 'RedHat' else 'apt' }} "
34
+ - " {{ ' tzdata-java' if ansible_facts.os_family == 'RedHat' else 'tzdata' }} "
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Include firewall config tasks
3
+ ansible.builtin.include_tasks : firewalld.yml
4
+ when : keycloak_quarkus_configure_firewalld
5
+ tags :
6
+ - firewall
You can’t perform that action at this time.
0 commit comments