From 45c2d01b1778304b5b85119a850819d38e123883 Mon Sep 17 00:00:00 2001 From: Lee Goolsbee Date: Fri, 7 Aug 2020 13:57:08 -0500 Subject: [PATCH 1/5] DCD-1037 use AdoptOpenJDK from official repos --- group_vars/aws_node_local.yml | 3 +- roles/confluence_config/defaults/main.yml | 2 -- roles/crowd_config/tasks/main.yml | 2 +- roles/product_common/tasks/amazon.yml | 24 ++++++++++++--- roles/product_common/tasks/ubuntu.yml | 36 +++++++++++++++-------- 5 files changed, 45 insertions(+), 22 deletions(-) diff --git a/group_vars/aws_node_local.yml b/group_vars/aws_node_local.yml index 4f8cb77..e677015 100644 --- a/group_vars/aws_node_local.yml +++ b/group_vars/aws_node_local.yml @@ -39,8 +39,7 @@ atl_installer_temp: "{{ atl_installation_base }}/tmp" # See product_common/task/ubuntu.yml for an example of apropriate # linking using `alternatives`. atl_java_home: "{{ '/usr/lib/jvm/java' if atl_use_system_jdk else (atl_product_installation_current + '/jre') }}" -atl_jre_home: "{{ '/usr/lib/jvm/jre' if atl_use_system_jdk else atl_java_home }}" -atl_java_binary: "{{ atl_jre_home }}/bin/java" +atl_java_binary: "{{ atl_java_home }}/bin/java" atl_product_logs_default: &logs_default - path: "{{ atl_product_installation_current }}/logs/*" diff --git a/roles/confluence_config/defaults/main.yml b/roles/confluence_config/defaults/main.yml index 4bd4d10..e71288d 100644 --- a/roles/confluence_config/defaults/main.yml +++ b/roles/confluence_config/defaults/main.yml @@ -3,8 +3,6 @@ atl_jvm_heap: "2048m" atl_fonts_fallback_dirs: - "{{ atl_java_home }}/lib/fonts/fallback/" - - "{{ atl_jre_home }}/lib/fonts/fallback/" - atl_autologin_cookie_age: "{{ lookup('env', 'ATL_AUTOLOGIN_COOKIE_AGE') }}" diff --git a/roles/crowd_config/tasks/main.yml b/roles/crowd_config/tasks/main.yml index e3b7c72..87aea58 100644 --- a/roles/crowd_config/tasks/main.yml +++ b/roles/crowd_config/tasks/main.yml @@ -148,7 +148,7 @@ xpath: "/application-configuration/properties/property[@name='hibernate.connection.url']" value: "{{ atl_jdbc_url }}?reWriteBatchedInserts=true" when: crowd_cfg_stat_result.stat.exists - + - name: Remove crowd.xml to prevent duplicates from appearing in cluster reporting file: path: "{{ atl_product_installation_versioned }}/apache-tomcat/conf/Catalina/localhost/crowd.xml" diff --git a/roles/product_common/tasks/amazon.yml b/roles/product_common/tasks/amazon.yml index 4d33f79..c6c836a 100644 --- a/roles/product_common/tasks/amazon.yml +++ b/roles/product_common/tasks/amazon.yml @@ -1,10 +1,26 @@ --- -- name: Install JDK if necessary on Amazon Linux - yum: - name: - - java-1.{{ java_major_version }}.0-openjdk-devel +- name: Add AdoptOpenJDK repo and install if necessary on Amazon Linux + block: + + - name: Add AdoptOpenJDK yum repository + yum_repository: + name: AdoptOpenJDK + file: adoptopenjdk + description: AdoptOpenJDK Repo + baseurl: "https://adoptopenjdk.jfrog.io/adoptopenjdk/rpm/amazonlinux/{{ ansible_distribution_version }}/{{ ansible_architecture }}/" + gpgkey: https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public + gpgcheck: yes + state: present + + - name: Install AdoptOpenJDK + yum: + name: "adoptopenjdk-{{ java_major_version }}-hotspot" + state: present + when: atl_use_system_jdk + tags: + - runtime_pkg - name: Install other base packages on Amazon Linux yum: diff --git a/roles/product_common/tasks/ubuntu.yml b/roles/product_common/tasks/ubuntu.yml index 0b033c5..ad2c0dd 100644 --- a/roles/product_common/tasks/ubuntu.yml +++ b/roles/product_common/tasks/ubuntu.yml @@ -1,25 +1,35 @@ --- -- name: Install JDK if necessary on Ubuntu +- name: Add AdoptOpenJDK repo and install if necessary on Ubuntu block: - - name: Install JDK package - package: - name: - - openjdk-{{ java_major_version }}-jdk-headless + - name: Install gnupg + apt: + name: gnupg + state: present + + - name: Add AdoptOpenJDK debian repo public key + apt_key: + url: https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public + state: present + + - name: Add AdoptOpenJDK debian repository + apt_repository: + repo: "deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb {{ ansible_distribution_release }} main" + state: present + filename: adoptopenjdk + + - name: Install AdoptOpenJDK + apt: + name: "adoptopenjdk-{{ java_major_version }}-hotspot" + update_cache: yes + state: present - name: Ensure common JDK symlink exists alternatives: link: "/usr/lib/jvm/java" name: "java_sdk" - path: "/usr/lib/jvm/java-8-openjdk-amd64" - priority: 99 - - - name: Ensure common JRE symlink exists - alternatives: - link: "/usr/lib/jvm/jre" - name: "jre" - path: "/usr/lib/jvm/java-8-openjdk-amd64/jre" + path: "/usr/lib/jvm/adoptopenjdk-{{ java_major_version }}-hotspot" priority: 99 when: atl_use_system_jdk From 529df0cafd9c9f912d340c1c2f0f6c47222069a6 Mon Sep 17 00:00:00 2001 From: Lee Goolsbee Date: Wed, 26 Aug 2020 16:34:48 -0500 Subject: [PATCH 2/5] fix tests --- roles/confluence_config/defaults/main.yml | 2 +- .../molecule/default/tests/test_default.py | 3 +-- .../molecule/system_jdk/tests/test_default.py | 3 +-- roles/confluence_config/tasks/main.yml | 1 - .../molecule/system_jdk/tests/test_default.py | 3 +-- roles/product_common/tasks/ubuntu.yml | 17 ++++++++++++++++- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/roles/confluence_config/defaults/main.yml b/roles/confluence_config/defaults/main.yml index e71288d..d39d683 100644 --- a/roles/confluence_config/defaults/main.yml +++ b/roles/confluence_config/defaults/main.yml @@ -2,7 +2,7 @@ atl_jvm_heap: "2048m" atl_fonts_fallback_dirs: - - "{{ atl_java_home }}/lib/fonts/fallback/" + - "{{ atl_java_home }}/lib/fonts/fallback/" atl_autologin_cookie_age: "{{ lookup('env', 'ATL_AUTOLOGIN_COOKIE_AGE') }}" diff --git a/roles/confluence_config/molecule/default/tests/test_default.py b/roles/confluence_config/molecule/default/tests/test_default.py index d3ff80e..337240b 100644 --- a/roles/confluence_config/molecule/default/tests/test_default.py +++ b/roles/confluence_config/molecule/default/tests/test_default.py @@ -81,8 +81,7 @@ def test_confluence_config_file(host): assert f.contains('select 1;') @pytest.mark.parametrize('font', [ -# '/usr/lib/jvm/java/lib/fonts/fallback/NotoSansJavanese-Regular.ttf', -# '/usr/lib/jvm/jre/lib/fonts/fallback/NotoSansJavanese-Regular.ttf' +# '/usr/lib/jvm/java/lib/fonts/fallback/NotoSansJavanese-Regular.ttf' '/opt/atlassian/confluence/current/jre/lib/fonts/fallback/NotoSansJavanese-Regular.ttf' ]) def test_fonts_installed_and_linked(host, font): diff --git a/roles/confluence_config/molecule/system_jdk/tests/test_default.py b/roles/confluence_config/molecule/system_jdk/tests/test_default.py index 7cb395e..600b059 100644 --- a/roles/confluence_config/molecule/system_jdk/tests/test_default.py +++ b/roles/confluence_config/molecule/system_jdk/tests/test_default.py @@ -12,8 +12,7 @@ def test_seraph_file(host): assert f.contains('COOKIEAGE') @pytest.mark.parametrize('font', [ - '/usr/lib/jvm/java/lib/fonts/fallback/NotoSansJavanese-Regular.ttf', - '/usr/lib/jvm/jre/lib/fonts/fallback/NotoSansJavanese-Regular.ttf' + '/usr/lib/jvm/java/lib/fonts/fallback/NotoSansJavanese-Regular.ttf' ]) def test_fonts_installed_and_linked(host, font): f = host.file(font) diff --git a/roles/confluence_config/tasks/main.yml b/roles/confluence_config/tasks/main.yml index 07b202c..ea807bb 100644 --- a/roles/confluence_config/tasks/main.yml +++ b/roles/confluence_config/tasks/main.yml @@ -52,7 +52,6 @@ insertafter: "EOF" line: 'export CATALINA_OPTS="${CATALINA_OPTS} {{ atl_catalina_opts }} {{ atl_catalina_opts_extra }}"' - - name: Configure login properties template: src: seraph-config.xml.j2 diff --git a/roles/product_common/molecule/system_jdk/tests/test_default.py b/roles/product_common/molecule/system_jdk/tests/test_default.py index e615c9f..39a5436 100644 --- a/roles/product_common/molecule/system_jdk/tests/test_default.py +++ b/roles/product_common/molecule/system_jdk/tests/test_default.py @@ -15,8 +15,7 @@ def test_user_created(host): @pytest.mark.parametrize('exe', [ '/usr/bin/git', '/usr/bin/javac', - '/usr/lib/jvm/java/bin/java', - '/usr/lib/jvm/java/jre/bin/java' + '/usr/lib/jvm/java/bin/java' ]) def test_package_exes(host, exe): assert host.file(exe).exists diff --git a/roles/product_common/tasks/ubuntu.yml b/roles/product_common/tasks/ubuntu.yml index ad2c0dd..dfd8331 100644 --- a/roles/product_common/tasks/ubuntu.yml +++ b/roles/product_common/tasks/ubuntu.yml @@ -3,6 +3,21 @@ - name: Add AdoptOpenJDK repo and install if necessary on Ubuntu block: + - name: Create translation matrix for ansible_architecture values to Ubuntu/Debian nomenclature + set_fact: + debian_architecture_translations: + x86_64: amd64 + aarch64: arm64 + + - name: Set debian_architecture based on ansible_architecture + set_fact: + debian_architecture: >- + {%- if ansible_architecture in debian_architecture_translations -%} + {{ debian_architecture_translations[ansible_architecture] }} + {%- else -%} + {{ ansible_architecture }} + {%- endif %} + - name: Install gnupg apt: name: gnupg @@ -29,7 +44,7 @@ alternatives: link: "/usr/lib/jvm/java" name: "java_sdk" - path: "/usr/lib/jvm/adoptopenjdk-{{ java_major_version }}-hotspot" + path: "/usr/lib/jvm/adoptopenjdk-{{ java_major_version }}-hotspot-{{ debian_architecture }}" priority: 99 when: atl_use_system_jdk From e0b76696c4a524d8df238f8ce5a0178cb7528b7b Mon Sep 17 00:00:00 2001 From: Lee Goolsbee Date: Thu, 27 Aug 2020 12:27:41 -0500 Subject: [PATCH 3/5] azl2 also needs this symlink --- roles/product_common/tasks/amazon.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/roles/product_common/tasks/amazon.yml b/roles/product_common/tasks/amazon.yml index c6c836a..fad01a6 100644 --- a/roles/product_common/tasks/amazon.yml +++ b/roles/product_common/tasks/amazon.yml @@ -18,6 +18,13 @@ name: "adoptopenjdk-{{ java_major_version }}-hotspot" state: present + - name: Ensure common JDK symlink exists + alternatives: + link: "/usr/lib/jvm/java" + name: "java_sdk" + path: "/usr/lib/jvm/adoptopenjdk-{{ java_major_version }}-hotspot" + priority: 99 + when: atl_use_system_jdk tags: - runtime_pkg From 73a3dea47dd362b0a9884e58bb46ea3475cef49d Mon Sep 17 00:00:00 2001 From: Lee Goolsbee Date: Thu, 10 Sep 2020 12:21:15 -0500 Subject: [PATCH 4/5] remove a few straggling references to linking fonts to the JRE --- group_vars/aws_node_local.yml | 2 +- roles/confluence_config/tasks/amazon_fonts.yml | 4 ++-- roles/confluence_config/tasks/ubuntu_fonts.yml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/group_vars/aws_node_local.yml b/group_vars/aws_node_local.yml index e677015..9db7661 100644 --- a/group_vars/aws_node_local.yml +++ b/group_vars/aws_node_local.yml @@ -35,7 +35,7 @@ atl_product_installation_current: "{{ atl_product_installation_base }}/current" atl_installer_temp: "{{ atl_installation_base }}/tmp" # NOTE: If using the non-installer java we expect to have the full JDK -# installed and linked to `/usr/lib/jvm/java` and # `/usr/lib/jvm/jre`. +# installed and linked to `/usr/lib/jvm/java`. # See product_common/task/ubuntu.yml for an example of apropriate # linking using `alternatives`. atl_java_home: "{{ '/usr/lib/jvm/java' if atl_use_system_jdk else (atl_product_installation_current + '/jre') }}" diff --git a/roles/confluence_config/tasks/amazon_fonts.yml b/roles/confluence_config/tasks/amazon_fonts.yml index 4fc5302..8fa2bda 100644 --- a/roles/confluence_config/tasks/amazon_fonts.yml +++ b/roles/confluence_config/tasks/amazon_fonts.yml @@ -5,8 +5,8 @@ name: - "google-noto-*" -- name: Link the language fonts into the JDK/JRE - # Not idiomatic, but cleaner that messing with nested lookups... +- name: Link the language fonts into the JDK + # Not idiomatic, but cleaner than messing with nested lookups... shell: cmd: "ln -sf /usr/share/fonts/google-noto*/* {{ item }}/" creates: "{{ item }}/NotoSansJavanese-Regular.ttf" diff --git a/roles/confluence_config/tasks/ubuntu_fonts.yml b/roles/confluence_config/tasks/ubuntu_fonts.yml index 084aa3f..20fcbb1 100644 --- a/roles/confluence_config/tasks/ubuntu_fonts.yml +++ b/roles/confluence_config/tasks/ubuntu_fonts.yml @@ -5,8 +5,8 @@ name: - "fonts-noto" -- name: Link the language fonts into the JDK/JRE - # Not idiomatic, but cleaner that messing with nested lookups... +- name: Link the language fonts into the JDK + # Not idiomatic, but cleaner than messing with nested lookups... shell: cmd: "ln -sf /usr/share/fonts/truetype/noto/* {{ item }}/" creates: "{{ item }}/NotoSansJavanese-Regular.ttf" From cfca6d794cf7f6cd7e67ad551e8a8daef9ffae78 Mon Sep 17 00:00:00 2001 From: Lee Goolsbee Date: Thu, 10 Sep 2020 12:22:16 -0500 Subject: [PATCH 5/5] move debian_architecture and debian_architecture_translations to defaults --- roles/product_common/defaults/main.yml | 8 ++++++++ roles/product_common/tasks/ubuntu.yml | 15 --------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/roles/product_common/defaults/main.yml b/roles/product_common/defaults/main.yml index 4e9f728..f8a46fd 100644 --- a/roles/product_common/defaults/main.yml +++ b/roles/product_common/defaults/main.yml @@ -5,3 +5,11 @@ postgres_version: "9.6" # Disable these when using the product installer, otherwise we end up # fighting with it. atl_use_system_jdk: false + +# Ubuntu and Ansible use different architecture nomenclature; provide +# an easy method for translating between them +debian_architecture_translations: + x86_64: amd64 + aarch64: arm64 + +debian_architecture: "{{ debian_architecture_translations[ansible_architecture] | default(ansible_architecture) }}" diff --git a/roles/product_common/tasks/ubuntu.yml b/roles/product_common/tasks/ubuntu.yml index dfd8331..c90b6bc 100644 --- a/roles/product_common/tasks/ubuntu.yml +++ b/roles/product_common/tasks/ubuntu.yml @@ -3,21 +3,6 @@ - name: Add AdoptOpenJDK repo and install if necessary on Ubuntu block: - - name: Create translation matrix for ansible_architecture values to Ubuntu/Debian nomenclature - set_fact: - debian_architecture_translations: - x86_64: amd64 - aarch64: arm64 - - - name: Set debian_architecture based on ansible_architecture - set_fact: - debian_architecture: >- - {%- if ansible_architecture in debian_architecture_translations -%} - {{ debian_architecture_translations[ansible_architecture] }} - {%- else -%} - {{ ansible_architecture }} - {%- endif %} - - name: Install gnupg apt: name: gnupg