Sample to install Java with Ansible
defaults/main.yml
---
#Temporary directory
temp_dir: /var/tmp
#Java distribution
java_distributions:
'11':
url: https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.4%2B11/OpenJDK11U-jdk_x64_linux_hotspot_11.0.4_11.tar.gz
#Java installation directory
java_install_dir: /usr/lib/jvm
# Java Home
java_home: "{{ java_install_dir }}/jdk-{{ java_version }}"
tasks/main.yml
---
- import_tasks: setup.yml
tasks/setup.yml
---
- name: Find installed Java.
find:
paths: "{{ java_install_dir }}"
file_type: directory
patterns: "jdk-{{ java_version }}*"
register: installed_java
- name: Delete installed Java.
file:
path: "{{ item.path }}"
state: absent
with_items:
- "{{ installed_java.files }}"
- name: Download Java distribution file.
get_url:
url: "{{ java_distributions[ java_version ].url }}"
dest: "{{ temp_dir }}"
register: distribution_file
- name: Unarchive Java distribution file.
unarchive:
src: "{{ distribution_file.dest }}"
dest: "{{ java_install_dir }}"
remote_src: yes
list_files: yes
owner: root
group: root
mode: u=rwX,go=rX
register: contents
- name: Create symbolic link.
file:
src: "{{ java_install_dir }}/{{ contents.files[ 0 ] | regex_replace( '.*/(.+)/$', '\\1' ) }}"
dest: "{{ java_home }}"
state: link
- name: Make alternatives.
alternatives:
name: "{{ item }}"
link: "/usr/bin/{{ item }}"
path: "{{ java_home }}/bin/{{ item }}"
with_items:
- java
- javac
- name: Delete Java distribution file.
file:
path: "{{ distribution_file.dest }}"
state: absent
Recommended Posts