Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit db5ca9e

Browse files
committed
install more versions of Java on Centos 7 and Ubuntu.
1 parent 093b796 commit db5ca9e

10 files changed

Lines changed: 215 additions & 60 deletions

File tree

README.md

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,41 @@ base_java8
44
=========
55

66
base_java8 is a just another vague acronym that other stuff depends on.
7-
This is an ansible-role to install Java 8.
7+
This is an ansible-role to install several Java versions on Centos or Ubuntu.
88

99
Requirements
1010
------------
1111

12-
RHEL-like , Ubuntu, or Debian.
12+
Centos 6 or 7. Ubuntu Xenial or Bionic.
1313

1414

1515
Role Variables
1616
--------------
1717

18-
java8_maj: 8
19-
java8_min: 0
20-
java8_ser: 111
21-
java8_patch: b14
18+
These lists drive the installation of packages.
19+
20+
```yaml
21+
22+
java8_packages:
23+
- 'java-1.8.0-openjdk-headless.x86_64'
24+
- 'java-1.8.0-openjdk-devel.x86_64'
25+
java9_packages: []
26+
java11_packages:
27+
- 'java-11-openjdk-headless.x86_64'
28+
- 'java-11-openjdk-devel.x86_64'
29+
java_latest_packages:
30+
- 'java-latest-openjdk-headless'
31+
- 'java-latest-openjdk-devel.x86_64'
32+
33+
```
34+
To select the default with alternatives on RedHat:
35+
`base_jdk: 'java-1.8.0'`
36+
37+
```yaml
38+
- 'java-1.8.0'
39+
- 'java-11'
40+
- 'java-13'
41+
```
2242
2343
Dependencies
2444
------------

defaults/main.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
---
2+
# for alternatives select another base_jdk in playbook vars
3+
base_jdk: 'java-1.8.0'
4+
# out of this list
5+
base_jdk_alternatives:
6+
- 'java-1.8.0'
7+
- 'java-11'
8+
- 'java-13'
29

3-
java8_rpms:
4-
- 'java-1.8.0-openjdk-headless.x86_64'
5-
- 'java-1.8.0-openjdk-devel.x86_64'
6-
- 'java-11-openjdk-headless.x86_64'
7-
- 'java-11-openjdk-devel.x86_64'
8-
- 'java-latest-openjdk-headless'
9-
- 'java-latest-openjdk-devel.x86_64'
10-
11-
java8_apt: 'openjdk-8-jdk'
1210
ubuntu_dir: 'java-8-openjdk-amd64'

molecule/default/molecule.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ platforms:
1414
- name: base-java8-centos6
1515
image: centos:6
1616
privileged: true
17-
- name: base-java8-ubuntu
17+
- name: base-java8-xenial
1818
image: ubuntu:xenial
1919
privileged: True
20+
- name: base-java8-bionic
21+
image: ubuntu:bionic
22+
privileged: True
2023
provisioner:
2124
name: ansible
2225
config_options:

molecule/default/playbook.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
---
22
# Standards: 0.2
33
- hosts: all
4+
vars:
5+
base_jdk: 'java-11'
46
roles:
57
- {role: dockpack.base_goss}
6-
- {role: base_java8, continue_on_error: False}
8+
- {role: base_java8}
79

810
post_tasks:
911
- include_tasks:

tasks/main.yml

Lines changed: 139 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,6 @@
1616
- maven_test
1717
- gradle_test
1818

19-
- name: What java8_rpms
20-
when: ansible_os_family == 'RedHat'
21-
debug:
22-
msg: "{{ java8_rpms }}"
23-
24-
- name: Ensure Java is installed.
25-
when: ansible_os_family == 'RedHat'
26-
yum:
27-
name: "{{ java8_rpms }}"
28-
state: present
29-
register: network_access
30-
until: network_access is success
31-
retries: 10
32-
delay: 2
33-
34-
- name: Ensure file is installed for tests
35-
when: ansible_os_family == 'RedHat'
36-
yum:
37-
name: file
38-
state: present
39-
register: network_access
40-
until: network_access is success
41-
retries: 10
42-
delay: 2
43-
44-
- name: What java8_apt
45-
when: ansible_os_family == 'Debian'
46-
debug:
47-
msg: "{{ java8_apt }}"
4819

4920
- name: Ensure python-apt is installed.
5021
when: ansible_os_family == 'Debian'
@@ -53,8 +24,8 @@
5324
state: present
5425
register: network_access
5526
until: network_access is success
56-
retries: 10
57-
delay: 2
27+
retries: 3
28+
delay: 3
5829

5930
- name: Update apt cache.
6031
when: ansible_os_family == 'Debian'
@@ -63,21 +34,150 @@
6334
cache_valid_time: 86400
6435
register: network_access
6536
until: network_access is success
66-
retries: 10
67-
delay: 2
37+
retries: 3
38+
delay: 3
6839
tags:
6940
- java8
7041
- java8_install
7142

72-
- name: Ensure Java is installed.
73-
when: ansible_os_family == 'Debian'
74-
apt:
75-
name: "{{ java8_apt }}"
43+
- name: Which java packages to install
44+
include_vars: "{{ ansible_os_family }}{{ ansible_distribution_major_version }}.yml"
45+
tags:
46+
- java8
47+
- java9
48+
- java11
49+
- java13
50+
51+
- name: Ensure Java8 is installed
52+
when:
53+
- java8_packages is defined
54+
- java8_packages|length
55+
package:
56+
name: "{{ java8_packages }}"
57+
state: present
58+
register: network_access
59+
until: network_access is success
60+
retries: 3
61+
delay: 3
62+
tags:
63+
- java8
64+
65+
- name: Ensure Java9 is installed
66+
when:
67+
- java9_packages is defined
68+
- java9_packages|length
69+
package:
70+
name: "{{ java9_packages }}"
71+
state: present
72+
register: network_access
73+
until: network_access is success
74+
retries: 3
75+
delay: 3
76+
tags:
77+
- java9
78+
79+
- name: Ensure Java11 is installed
80+
when:
81+
- java11_packages is defined
82+
- java11_packages|length
83+
package:
84+
name: "{{ java11_packages }}"
85+
state: present
86+
register: network_access
87+
until: network_access is success
88+
retries: 3
89+
delay: 3
90+
tags:
91+
- java11
92+
93+
- name: Ensure epel-release is installed
94+
when:
95+
- java_latest_packages is defined
96+
- java_latest_packages|length
97+
yum:
98+
name: epel-release
99+
state: present
100+
register: network_access
101+
until: network_access is success
102+
retries: 3
103+
delay: 3
104+
tags:
105+
- java13
106+
107+
- name: Ensure Java-latest is installed
108+
when:
109+
- java_latest_packages is defined
110+
- java_latest_packages|length
111+
package:
112+
name: "{{ java_latest_packages }}"
113+
state: present
114+
register: network_access
115+
until: network_access is success
116+
retries: 3
117+
delay: 3
118+
tags:
119+
- java13
120+
121+
- name: Correct java alternatives selected
122+
when:
123+
- ansible_os_family == 'RedHat'
124+
- ansible_distribution_major_version|int >= 7
125+
alternatives:
126+
link: "/usr/bin/{{ item }}"
127+
name: "{{ item }}"
128+
path: "/usr/lib/jvm/{{ base_jdk }}/bin/{{ item }}"
129+
with_items:
130+
- java
131+
- javac
132+
tags:
133+
- alternatives
134+
- java11
135+
136+
- name: Correct tools alternatives selected
137+
when:
138+
- ansible_os_family == 'RedHat'
139+
- ansible_distribution_major_version|int >= 7
140+
alternatives:
141+
link: "/etc/alternatives/{{ item }}"
142+
name: "{{ item }}"
143+
path: "/usr/lib/jvm/{{ base_jdk }}/bin/{{ item }}"
144+
with_items:
145+
- jar
146+
- jarsigner
147+
- javadoc
148+
- javap
149+
- jcmd
150+
- jconsole
151+
- jdb
152+
- jdeps
153+
- jinfo
154+
- jjs
155+
- jmap
156+
- jps
157+
- jrunscript
158+
- jstack
159+
- jstat
160+
- jstatd
161+
- keytool
162+
- pack200
163+
- rmic
164+
- rmid
165+
- rmiregistry
166+
- serialver
167+
- unpack200
168+
tags:
169+
- alternatives
170+
- java11
171+
172+
- name: Ensure file is installed for tests
173+
when: ansible_os_family == 'RedHat'
174+
yum:
175+
name: file
76176
state: present
77177
register: network_access
78178
until: network_access is success
79-
retries: 10
80-
delay: 2
179+
retries: 3
180+
delay: 3
81181

82182
- name: Make sure java_top exists
83183
become: yes

templates/test_java.yml.j2

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,8 @@ file:
2525

2626
package:
2727
{% if ansible_os_family == 'RedHat' %}
28-
{% for item in java8_rpms %}
28+
{% for item in java8_packages %}
2929
{{ item }}:
3030
installed: true
3131
{% endfor %}
32-
{% else %}
33-
{{ java8_apt }}:
34-
installed: true
3532
{% endif %}

vars/Debian16.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
3+
java8_packages:
4+
- 'openjdk-8-jdk'
5+
java9_packages:
6+
- 'openjdk-9-jdk-headless'
7+
- 'openjdk-9-jre-headless'
8+
java11_packages: []
9+
java_latest_packages: []

vars/Debian18.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
3+
java8_packages:
4+
- 'openjdk-8-jdk'
5+
java9_packages: []
6+
java11_packages:
7+
- 'openjdk-11-jdk-headless'
8+
- 'openjdk-11-jre-headless'
9+
java_latest_packages: []

vars/RedHat6.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
3+
java8_packages:
4+
- 'java-1.8.0-openjdk-headless.x86_64'
5+
- 'java-1.8.0-openjdk-devel.x86_64'

vars/RedHat7.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
3+
java8_packages:
4+
- 'java-1.8.0-openjdk-headless.x86_64'
5+
- 'java-1.8.0-openjdk-devel.x86_64'
6+
java9_packages: []
7+
java11_packages:
8+
- 'java-11-openjdk-headless.x86_64'
9+
- 'java-11-openjdk-devel.x86_64'
10+
java_latest_packages:
11+
- 'java-latest-openjdk-headless'
12+
- 'java-latest-openjdk-devel.x86_64'

0 commit comments

Comments
 (0)