diff --git a/openjdk/defaults/main.yml b/openjdk/defaults/main.yml index f6562273..d74d0b4b 100644 --- a/openjdk/defaults/main.yml +++ b/openjdk/defaults/main.yml @@ -1,12 +1,18 @@ --- openjdk_default: 8 -openjdk_pkg_state: latest +openjdk_pkg_state: present openjdk_version: - '{{ openjdk_default }}' -openjdk_ppa: 'ppa:openjdk-r/ppa' +dismissed_openjdk_ppa: 'ppa:openjdk-r/ppa' +openjdk_zulu_repo_install: False +openjdk_zulu_repo_key_id: '0xB1998361219BD9C9' +openjdk_zulu_repository: 'deb http://repos.azulsystems.com/{{ ansible_distribution | lower }} stable main' -jdk_java_home: '/usr/lib/jvm/java-{{ openjdk_default }}-openjdk-amd64' +openjdk_java_home: '/usr/lib/jvm/java-{{ openjdk_default }}-openjdk-amd64' +openjdk_zulu_java_home: '/usr/lib/jvm/zulu-{{ openjdk_default }}-amd64' + +openjdk_zulu_package_name: zulu openjdk_pkgs: - jre-headless diff --git a/openjdk/handlers/main.yml b/openjdk/handlers/main.yml deleted file mode 100644 index 614db794..00000000 --- a/openjdk/handlers/main.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- name: Set OpenJDK 6 as default - shell: update-java-alternatives -s java-1.6.0-openjdk-amd64 - -- name: Set OpenJDK 7 as default - shell: update-java-alternatives -s java-1.7.0-openjdk-amd64 - -- name: Set OpenJDK 8 as default - shell: update-java-alternatives -s java-1.8.0-openjdk-amd64 - -- name: Set the default OpenJDK - shell: update-java-alternatives -s java-1.{{ item }}.0-openjdk-amd64 - with_items: '{{ openjdk_default }}' - diff --git a/openjdk/tasks/main.yml b/openjdk/tasks/main.yml index 03e22174..25f5b86c 100644 --- a/openjdk/tasks/main.yml +++ b/openjdk/tasks/main.yml @@ -1,23 +1,63 @@ --- - block: - - name: Add the openjdk ppa. To have openjdk 8/9 on precise and trusty - apt_repository: repo='{{ openjdk_ppa }}' update_cache=yes - - - name: Install OpenJDK - apt: pkg=openjdk-{{ item.0 }}-{{ item[1] }} state={{ openjdk_pkg_state }} update_cache=yes cache_valid_time=3600 - with_nested: - - '{{ openjdk_version }}' - - '{{ openjdk_pkgs }}' - notify: Set the default OpenJDK - register: openjdk_installed + - name: Remove the openjdk-r ppa. It is not maintained anymore + apt_repository: repo='{{ dismissed_openjdk_ppa }}' update_cache=yes state=absent - - name: Rebuild the Ubuntu keystore - command: update-ca-certificates --fresh - when: openjdk_installed is changed - - - name: Set the default OpenJDK - shell: update-java-alternatives -s java-1.{{ item }}.0-openjdk-amd64 - with_items: '{{ openjdk_default }}' - when: openjdk_installed is changed + - name: Check if we must use the Zulu repository + set_fact: + openjdk_zulu_repo_install: True + when: ansible_distribution_major_version <= '16' + + tags: [ 'jdk', 'openjdk' ] + +- block: + - name: Install the Zulu repository key + apt_key: keyserver='hkp://keyserver.ubuntu.com' id={{ openjdk_zulu_repo_key_id }} + + - name: Install the proper Zulu repository + apt_repository: repo='{{ openjdk_zulu_repository }}' update_cache=yes + + - name: Install the Zulu OpenJDK + apt: pkg={{ openjdk_zulu_package_name }}-{{ item }} state={{ openjdk_pkg_state }} update_cache=yes cache_valid_time=3600 + with_items: '{{ openjdk_version }}' + register: openjdk_installed + + - name: Set the default OpenJDK as Zulu + shell: update-java-alternatives -s /usr/lib/jvm/zulu-{{ openjdk_default }}-amd64 + when: openjdk_installed is changed + + - name: Set the correct value for jdk_java_home when we are installing Zulu + set_fact: + jdk_java_home: '{{ openjdk_zulu_java_home }}' + + when: openjdk_zulu_repo_install + tags: [ 'jdk', 'openjdk' ] + +- block: + - name: Remove the Zulu repository if it is present + apt_repository: repo='{{ openjdk_zulu_repository }}' update_cache=yes state=absent + + - name: Install the OpenJDK that comes with the distribution + apt: pkg=openjdk-{{ item.0 }}-{{ item[1] }} state={{ openjdk_pkg_state }} update_cache=yes cache_valid_time=3600 + with_nested: + - '{{ openjdk_version }}' + - '{{ openjdk_pkgs }}' + register: openjdk_installed + + - name: Set the default OpenJDK + shell: update-java-alternatives -s java-1.{{ openjdk_default }}.0-openjdk-amd64 + when: openjdk_installed is changed + + - name: Set the correct value for jdk_java_home when we are installing the distribution OpenJDK + set_fact: + jdk_java_home: '{{ openjdk_java_home }}' + + when: not openjdk_zulu_repo_install + tags: [ 'jdk', 'openjdk' ] + +- block: + - name: Rebuild the Ubuntu keystore + command: update-ca-certificates --fresh + when: openjdk_installed is changed tags: [ 'jdk', 'openjdk' ]