java: support for Oracle JRE

This commit is contained in:
Victor LABORIE 2018-03-23 11:47:13 +01:00
parent 03431fc116
commit fbd97a5f08
16 changed files with 126 additions and 45 deletions

View File

@ -15,6 +15,7 @@ The **patch** part changes incrementally at each release.
* elasticsearch: add http.publish_host variable
* kibana: log messages go to /var/log/kibana/kibana.log
* mysql: add an option to install the client development libraries (default: `False`)
* java: support for Oracle JRE
### Changed
* evolinux-users: add sudo permission for bkctld check
@ -23,6 +24,7 @@ The **patch** part changes incrementally at each release.
* rbenv: change default Ruby version (2.5.1)
* rbenv: switch from copy to lineinfile for default gems
* squid: add a few news sites to the whitelist
* java8: renamed to java (java8 symlinked to java for backward compatibility)
### Fixed

View File

@ -25,4 +25,4 @@ galaxy_info:
# alphanumeric characters. Maximum 20 tags per role.
dependencies:
- java8
- { role: java, alternative: 'openjdk', java_version: 8 }

14
java/README.md Normal file
View File

@ -0,0 +1,14 @@
# java
Install OpenJDK or OracleJDK
## Tasks
* `openjdk.yml` : install of OpenJDK
* `oracle.yml` : install or OracleJDK
## Available variables
* `java_alternative`: choose between openjdk or oraclejdk (default to openjdk)
* `java_version`: java version (default to 8)
* `java_default_alternative`: make this verison the default alternative (default to true)

4
java/defaults/main.yml Normal file
View File

@ -0,0 +1,4 @@
---
java_alternative: 'openjdk'
java_version: 8
java_default_alternative: True

View File

@ -1,7 +1,7 @@
---
galaxy_info:
author: Evolix
description: Installation of Java 8
description: Installation of Java
issue_tracker_url: https://forge.evolix.org/projects/ansible-roles/issues
@ -13,3 +13,4 @@ galaxy_info:
- name: Debian
versions:
- jessie
- stretch

10
java/tasks/main.yml Normal file
View File

@ -0,0 +1,10 @@
---
- fail:
msg: "This role support only java 8 for now !"
when: java_version != 8
- include: openjdk.yml
when: "{{ java_alternative == 'openjdk' }}"
- include: oracle.yml
when: "{{ java_alternative == 'oracle' }}"

31
java/tasks/openjdk.yml Normal file
View File

@ -0,0 +1,31 @@
---
- name: Decide which Debian release to use
set_fact:
java_apt_release: '{% if ansible_distribution_release == "jessie" %}jessie-backports{% else %}{{ ansible_distribution_release }}{% endif %}'
tags:
- java
- name: Install jessie-backports
include_role:
name: apt
tasks_from: backports.yml
when: ansible_distribution_release == "jessie"
tags:
- java
- name: Install openjdk package
apt:
name: "openjdk-{{ java_version}}-jre-headless"
default_release: "{{ java_apt_release }}"
state: present
tags:
- java
- packages
- name: This openjdk version is the default alternative
alternatives:
name: java
path: "/usr/lib/jvm/java-{{ java_version }}-openjdk-amd64/jre/bin/java"
when: java_default_alternative
tags:
- java

58
java/tasks/oracle.yml Normal file
View File

@ -0,0 +1,58 @@
---
- name: Install dependencies for build java package
apt:
name: "{{ item }}"
state: present
with_items:
- java-package
- build-essential
tags:
- java
- name: Create jvm dir
file:
path: "{{ item }}"
state: directory
mode: "0777"
with_items:
- /srv/java-package
- /srv/java-package/src
- /srv/java-package/tmp
tags:
- java
- name: Get Oracle jre archive
get_url:
url: 'http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec242421181065cdc37240b08/jre-8u172-linux-x64.tar.gz'
dest: '/srv/java-package/src/'
checksum: 'sha256:f08f25aec2bdc86138ccba8fd5b904451e3afa1d24a88c85f28c2d84bfd45bad'
headers: 'Cookie: oraclelicense=accept-securebackup-cookie'
mode: "0644"
tags:
- java
- name: Make Debian package from Oracle JDK archive
shell: "yes | TMPDIR=/srv/java-package/tmp make-jpkg /srv/java-package/src/jre-8u172-linux-x64.tar.gz"
args:
chdir: /srv/java-package
creates: /srv/java-package/oracle-java8-jre_8u172_amd64.deb
become: False
tags:
- java
- include_role:
name: remount-usr
- name: Install java package
apt:
deb: /srv/java-package/oracle-java8-jre_8u172_amd64.deb
tags:
- java
- name: This openjdk version is the default alternative
alternatives:
name: java
path: "/usr/lib/jvm/jre-{{ java_version }}-oracle-x64/bin/java"
when: java_default_alternative
tags:
- java

View File

@ -1,4 +1,4 @@
---
- hosts: test-kitchen
roles:
- role: java8
- role: java

1
java8 Symbolic link
View File

@ -0,0 +1 @@
java

View File

@ -1,11 +0,0 @@
# java8
Install OpenJDK 1.8 (from jessie-backports)
## Tasks
Everything is in the `tasks/main.yml` file.
## Available variables
* `java8_default_alternative`: make this verison the default alternative (defaults to true)

View File

@ -1,2 +0,0 @@
---
java8_default_alternative: True

View File

@ -1,27 +0,0 @@
---
- name: Decide which Debian release to use
set_fact:
java8_apt_release: '{% if ansible_distribution_release == "jessie" %}jessie-backports{% else %}{{ ansible_distribution_release }}{% endif %}'
- name: install jessie-backports
include_role:
name: apt
tasks_from: backports.yml
when: ansible_distribution_release == "jessie"
- name: Java 8 is installed
apt:
name: openjdk-8-jre-headless
default_release: "{{ java8_apt_release }}"
state: present
tags:
- java
- packages
- name: Java 8 is the default alternative
alternatives:
name: java
path: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
when: java8_default_alternative
tags:
- java

View File

@ -24,4 +24,4 @@ galaxy_info:
# alphanumeric characters. Maximum 20 tags per role.
dependencies:
- java8
- { role: java, java_alternative: 'openjdk', java_version: 8 }

View File

@ -14,4 +14,4 @@ galaxy_info:
- jessie
dependencies:
- java8
- { role: java, java_alternative: 'openjdk', java_version: 8 }