Skip to content

Commit 5f3c391

Browse files
committed
Merge pull request #1 from ansiblebit/centos_java
support for Redhat.
2 parents b1f209c + 42d8753 commit 5f3c391

File tree

17 files changed

+379
-31
lines changed

17 files changed

+379
-31
lines changed

README.md

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,75 @@
55

66
[![Platform](http://img.shields.io/badge/platforms-debian-a80030.svg?style=flat)](#)
77
[![Platform](http://img.shields.io/badge/platforms-ubuntu-dd4814.svg?style=flat)](#)
8+
[![Platform](http://img.shields.io/badge/platform-redhat-cc0000.svg?style=flat)](#)
89

910
[![Project Stats](https://www.openhub.net/p/ansiblebit-oracle-java/widgets/project_thin_badge.gif)](https://www.openhub.net/p/ansiblebit-oracle-java/)
1011

1112
An [Ansible](http://www.ansible.com) role to setup Oracle Java Development Kit.
1213

14+
DISCLAIMER: usage of any version of this role implies you have accepted the
15+
[Oracle Binary Code License Agreement for Java SE](http://www.oracle.com/technetwork/java/javase/terms/license/index.html).
16+
17+
18+
## Tests
19+
20+
| Family | Distribution | Version | Test Status |
21+
|:-:|:-:|:-:|:-:|
22+
| Debian | Debian | Jessie | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
23+
| Debian | Debian | Wheezy | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
24+
| Debian | Ubuntu | Precise | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
25+
| Debian | Ubuntu | Trusty | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
26+
| Debian | Ubuntu | Vivid | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
27+
| RedHat | CentOS | 6.4 | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
28+
| RedHat | CentOS | 6.6 | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
29+
| RedHat | Centos | 7 | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-passed-006400.svg?style=flat)](#) |
30+
| RedHat | Fedora | 20 | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-n/a-cccccc.svg?style=flat)](#) |
31+
| RedHat | Fedora | 21 | [![x86](http://img.shields.io/badge/x86-n/a-cccccc.svg?style=flat)](#) [![x86_64](http://img.shields.io/badge/x86_64-n/a-cccccc.svg?style=flat)](#) |
32+
1333

1434
## Requirements
1535

1636
- ansible >= 1.8.4
1737

1838

39+
# Facts
40+
| variable | description |
41+
|:-:|:--|
42+
| oracle_java_installed | fact set by this role that contains a flag that indicates if Java is installed on the host. |
43+
| oracle_java_version_installed | fact set by this role that contains the string of the Java version installed in the system. |
44+
45+
1946
## Role Variables
2047

2148
| variable | default | description |
2249
|:--------:|:-------:|:------------|
23-
| oracle_java_version | 8 | the Oracle JDK version to be installed. |
50+
| oracle_java_set_as_default | no | make the newly installed Java the default runtime environment. |
2451
| oracle_java_state | latest | the package state (see Ansible apt module for more information). |
25-
| oracle_java_default | no | make the newly installed Java the default runtime environment. |
52+
| oracle_java_version | 8 | the Oracle JDK version to be installed. |
53+
| oracle_java_version_update | 45 | the Oracle JDK version update. |
54+
| oracle_java_version_build | 14 | the Oracle JDK version update build number. |
55+
| oracle_java_version_string | 1.{{ oracle_java_version }}.0_u{{ oracle_java_version_update }} | the Java version string to verify installation against. |
56+
| oracle_java_os_supported variable | - | role internal variable to check if a OS family is supported or not. |
57+
58+
59+
### Debian-only
60+
61+
| variable | default | description |
62+
|:-:|:-:|:--|
63+
| launchpad_ppa_webupd8_cache_valid_time | 3600 | the amount of time in seconds the apt cache is valid. |
2664
| oracle_java_cache_valid_time | 3600 | the amount of time in seconds the apt cache is valid. |
65+
| oracle_java_state | latest | the package state (see Ansible apt module for more information). |
66+
| oracle_java_home | /usr/lib/jvm/java-{{ oracle_java_version }}-oracle | the location of the Java home directory. |
67+
68+
69+
### Redhat-only
70+
71+
| variable | default | description |
72+
|:-:|:-:|:--|
73+
| oracle_java_dir_source | /usr/local/src | directory where to store RPMs (Redhat-only). |
74+
| oracle_java_home | /usr/java/jdk1.{{ oracle_java_version }}.0_{{ oracle_java_version_update }} | the location of the Java home directory. |
75+
| oracle_java_rpm_filename | jdk-{{ oracle_java_version }}u{{ oracle_java_version_update }}-linux-x64.rpm | the filename of the RPM. |
76+
| oracle_java_rpm_url | http://download.oracle.com/otn-pub/java/jdk/{{ oracle_java_version }}u{{ oracle_java_version_update }}-b{{ oracle_java_version_build }}/{{ oracle_java_rpm_filename }} | the URL where the RPM can be downloaded from. |
2777

2878

2979
## Dependencies
@@ -37,11 +87,23 @@ For Debian and Ubuntu this role depends on:
3787

3888
- hosts: servers
3989
roles:
40-
- { role: ansiblebit.oracle-java, oracle_java_default: yes }
90+
- { role: ansiblebit.oracle-java,
91+
oracle_java_set_as_default: yes }
92+
93+
Use `--skip-tags=debug` if you want to suppress debug information.
4194

4295

4396
## Changelog
4497

98+
- v4.0.0 : 13 May 2015
99+
- added support for RedHat-based systems
100+
- separated Debian from Redhat variables
101+
- oracle_java_default (default:no) replaced by oracle_java_set_default (default:no)
102+
- directory structure changes
103+
- tasks/os_family/<family name>.yml changed in favor of task/<family name>/main.yml
104+
- added debug task
105+
- role-specific facts now used to set if an installation process is necessary in Debian or RedHat
106+
- fixed build issues related to tox 2.0.1
45107
- v3.0.2 : 8 May 2015
46108
- added oracle_java_home variable
47109
- v3.0.0 : 7 May 2015

defaults/darwin.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
# file: oracle-java/defaults/darwin.yml
3+
#
4+
# Default variables for Darwin-based distributions.
5+
#
6+
7+
oracle_java_os_supported: no

defaults/debian.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
# file: oracle-java/defaults/debian.yml
3+
#
4+
# Default variables for Debian-based Linux distributions.
5+
#
6+
7+
launchpad_ppa_webupd8_cache_valid_time: 3600
8+
9+
oracle_java_cache_valid_time: "{{ launchpad_ppa_webupd8_cache_valid_time }}"
10+
11+
oracle_java_home: "/usr/lib/jvm/java-{{ oracle_java_version }}-oracle"
12+
13+
oracle_java_os_supported: yes
14+
15+
oracle_java_state: latest

defaults/main.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44
# defaults file
55
#
66

7-
oracle_java_version: 8
8-
oracle_java_state: latest
9-
oracle_java_default: no
10-
11-
launchpad_ppa_webupd8_cache_valid_time: 3600
7+
oracle_java_dir_source: '/usr/local/src'
128

13-
oracle_java_cache_valid_time: "{{ launchpad_ppa_webupd8_cache_valid_time }}"
9+
oracle_java_set_as_default: no
1410

15-
oracle_java_home: "/usr/lib/jvm/java-{{ oracle_java_version }}-oracle"
11+
oracle_java_version: 8
12+
oracle_java_version_update: 45
13+
oracle_java_version_build: 14
14+
oracle_java_version_string: "1.{{ oracle_java_version }}.0_{{ oracle_java_version_update }}"

defaults/redhat.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
# file: oracle-java/defaults/redhat.yml
3+
#
4+
# Default variables for Redhat-based Linux distributions.
5+
#
6+
7+
oracle_java_home: "/usr/java/jdk1.{{ oracle_java_version }}.0_{{ oracle_java_version_update }}"
8+
9+
oracle_java_os_supported: yes
10+
11+
oracle_java_rpm_filename: "jdk-{{ oracle_java_version }}u{{ oracle_java_version_update }}-linux-x64.rpm"
12+
oracle_java_rpm_url: "http://download.oracle.com/otn-pub/java/jdk/{{ oracle_java_version }}u{{ oracle_java_version_update }}-b{{ oracle_java_version_build }}/{{ oracle_java_rpm_filename }}"

handlers/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
# file: oracle-java/handlers/main.yml
3+
#
4+
# Handlers file.
5+
#

tasks/check_environment.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
# file: oracle-java/tasks/check_environment.yml
3+
#
4+
# task to set host facts:
5+
# - Java is installed?
6+
# - which Java version is installed?
7+
#
8+
9+
# determine if Java is already installed
10+
11+
- name: register oracle_java_installed
12+
shell: "which java"
13+
register: oracle_java_task_installed
14+
ignore_errors: yes
15+
changed_when: False
16+
# oracle_java_installed.rc == 0 : installed
17+
# oracle_java_installed.rc == 1 : not installed
18+
19+
- name: echo oracle_java_task_installed
20+
debug:
21+
msg="oracle_java_task_installed={{ oracle_java_task_installed }}"
22+
when: oracle_java_task_installed is defined
23+
tags:
24+
- debug
25+
26+
- name: set fact oracle_java_installed
27+
set_fact:
28+
oracle_java_installed={{ oracle_java_task_installed.rc == 0 }}
29+
changed_when: False
30+
31+
- name: echo oracle_java_installed
32+
debug:
33+
msg="oracle_java_installed={{ oracle_java_installed }}"
34+
when: oracle_java_installed is defined
35+
tags:
36+
- debug
37+
38+
39+
# determine which Java version is installed
40+
41+
- name: if Java is installed, check version
42+
shell: java -version 2>&1 | head -n 1 | awk '{ print $3 }' | awk -F \" '{ print $2 }'
43+
when: oracle_java_installed
44+
register: oracle_java_task_version
45+
changed_when: False
46+
47+
- name: echo oracle_java_task_version
48+
debug:
49+
msg="oracle_java_task_version={{ oracle_java_task_version }}"
50+
when: oracle_java_task_version is defined
51+
tags:
52+
- debug
53+
54+
- name: set fact oracle_java_installed_version
55+
set_fact:
56+
oracle_java_version_installed={{ oracle_java_task_version.stdout }}
57+
when: oracle_java_installed
58+
changed_when: False
59+
60+
- name: echo oracle_java_version_installed
61+
debug:
62+
msg="oracle_java_version_installed={{ oracle_java_version_installed }}"
63+
when: oracle_java_version_installed is defined
64+
tags:
65+
- debug
66+
67+
- name: echo oracle_java_version_string
68+
debug:
69+
msg="oracle_java_version_string={{ oracle_java_version_string }}"
70+
when: oracle_java_version_string is defined
71+
tags:
72+
- debug
Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
---
2-
# task file for Debian OS family
3-
4-
- name: debian is supported
5-
set_fact:
6-
os_supported: yes
2+
# file: oracle-java/tasks/debian/main.yml
3+
#
4+
# Task file to install Oracle Java Development Kit in a system with a Debian based Linux distribution.
5+
#
76

87
- name: accept Oracle license
98
shell: "echo oracle-java{{ oracle_java_version }}-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections"
@@ -15,11 +14,18 @@
1514
name="oracle-java{{ oracle_java_version }}-installer"
1615
state={{ oracle_java_state }}
1716
cache_valid_time={{ oracle_java_cache_valid_time }}
17+
register: oracle_java_task_apt_install
1818
sudo: yes
1919

2020
- name: set Java version as default
2121
apt:
2222
name="oracle-java{{ oracle_java_version }}-set-default"
2323
state=latest
24+
register: oracle_java_task_set_default
25+
when: oracle_java_set_as_default
2426
sudo: yes
25-
when: oracle_java_default
27+
when: oracle_java_set_as_default
28+
29+
- name: in case there were changes, check host environment again
30+
include: ../check_environment.yml
31+
when: oracle_java_task_apt_install|changed or oracle_java_task_set_default|changed

tasks/debug.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
# file: oracle-java/tasks/debug.yml
3+
#
4+
# Task that prints variable debug information.
5+
#
6+
7+
- name: echo oracle_java_cache_valid_time
8+
debug:
9+
msg="oracle_java_version_build={{ oracle_java_cache_valid_time }}"
10+
when: oracle_java_cache_valid_time is defined
11+
12+
- name: echo oracle_java_installed
13+
debug:
14+
msg="oracle_java_installed={{ oracle_java_installed }}"
15+
when: oracle_java_installed is defined
16+
17+
- name: echo oracle_java_rpm_filename
18+
debug:
19+
msg="oracle_java_rpm_filename={{ oracle_java_rpm_filename }}"
20+
when: oracle_java_rpm_filename is defined
21+
22+
- name: echo oracle_java_home
23+
debug:
24+
msg="oracle_java_home={{ oracle_java_home }}"
25+
when: oracle_java_home is defined
26+
27+
- name: echo oracle_java_os_supported
28+
debug:
29+
msg="oracle_java_os_supported={{ oracle_java_os_supported }}"
30+
when: oracle_java_os_supported is defined
31+
32+
- name: echo oracle_java_rpm_url
33+
debug:
34+
msg="oracle_java_rpm_url={{ oracle_java_rpm_url }}"
35+
when: oracle_java_rpm_url is defined
36+
37+
- name: echo oracle_java_state
38+
debug:
39+
msg="oracle_java_state={{ oracle_java_state }}"
40+
when: oracle_java_state is defined
41+
42+
- name: echo oracle_java_version_build
43+
debug:
44+
msg="oracle_java_version_build={{ oracle_java_version_build }}"
45+
when: oracle_java_version_build is defined
46+
47+
- name: echo oracle_java_version_installed
48+
debug:
49+
msg="oracle_java_version_installed={{ oracle_java_version_installed }}"
50+
when: oracle_java_version_installed is defined
51+
52+
- name: echo oracle_java_version_string
53+
debug:
54+
msg="oracle_java_version_string={{ oracle_java_version_string }}"
55+
when: oracle_java_version_string is defined
56+
57+
- name: echo oracle_java_rpm_filename
58+
debug:
59+
msg="oracle_java_rpm_filename={{ oracle_java_rpm_filename }}"
60+
when: oracle_java_rpm_filename is defined
61+
62+
- name: echo oracle_java_rpm_url
63+
debug:
64+
msg="oracle_java_rpm_url={{ oracle_java_rpm_url }}"
65+
when: oracle_java_rpm_url is defined
66+
67+
- name: echo oracle_java_set_as_default
68+
debug:
69+
msg="oracle_java_set_as_default={{ oracle_java_set_as_default }}"
70+
when: oracle_java_set_as_default is defined

tasks/main.yml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,34 @@
44
# tasks file
55
#
66

7+
- name: check host environment
8+
include: check_environment.yml
9+
10+
## include OS family specific variables
11+
12+
- name: include OS family/distribution specific variables
13+
include_vars: "{{ item }}"
14+
with_first_found:
15+
- "../defaults/{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml"
16+
- "../defaults/{{ ansible_distribution | lower }}.yml"
17+
- "../defaults/{{ ansible_os_family | lower }}.yml"
18+
19+
- name: debug variables
20+
include: debug.yml
21+
tags:
22+
- debug
23+
724
## include OS family specific task file
825

926
- name: if debian, include family specific task file
10-
include: "os_family/debian.yml"
27+
include: "debian/main.yml"
1128
when: ansible_os_family| lower == 'debian'
1229

30+
- name: if redhat, include family specific task file
31+
include: "redhat/main.yml"
32+
when: ansible_os_family| lower == 'redhat'
33+
1334
- name: check if operating system is suported
1435
fail:
1536
msg: "The operating system ({{ ansible_os_family }}) of the target machine ({{ inventory_hostname }}) is not currently supported."
16-
when: os_supported is not defined
37+
when: oracle_java_os_supported is not defined or not oracle_java_os_supported

0 commit comments

Comments
 (0)