Merge remote-tracking branch 'origin/master' into azure_deployments

# Conflicts:
#	group_vars/aws_node_local.yml
#	roles/product_startup/molecule/bitbucket/tests/test_default.py
#	roles/product_startup/molecule/default/tests/test_default.py
#	roles/product_startup/molecule/synchrony/tests/test_default.py
#	roles/product_startup/tasks/main.yml
This commit is contained in:
David Bacon
2020-12-10 16:51:12 +00:00
21 changed files with 98 additions and 48 deletions

View File

@@ -8,7 +8,10 @@ if [[ $ID = "amzn" ]]; then
python3-devel \
python3-pip \
python2-boto3 \
python2-botocore
python2-botocore \
python-pip
python -m pip install lxml
else
# FIXME: Currently assumes Debian-based

View File

@@ -9,7 +9,7 @@
#
# https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
java_version: "8"
java_major_version: "8"
postgres_version: "9.6"
git_version: "2.14.4"
atl_shared_mountpoint: "/media/atl"

View File

@@ -2,9 +2,7 @@
atl_jvm_heap: "2048m"
atl_fonts_fallback_dirs:
- "{{ atl_java_home }}/lib/fonts/fallback/"
- "{{ atl_jre_home }}/lib/fonts/fallback/"
- "{{ atl_java_home }}/lib/fonts/fallback/"
atl_autologin_cookie_age: "{{ lookup('env', 'ATL_AUTOLOGIN_COOKIE_AGE') }}"

View File

@@ -81,8 +81,7 @@ def test_confluence_config_file(host):
assert f.contains('<property name="hibernate.c3p0.preferredTestQuery">select 1;</property>')
@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):

View File

@@ -12,8 +12,7 @@ def test_seraph_file(host):
assert f.contains('<param-value>COOKIEAGE</param-value>')
@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)

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -28,6 +28,9 @@
remote_src: true
src: "{{ atl_product_home_shared }}/jira-config.properties"
dest: "{{ atl_product_home }}/jira-config.properties"
owner: "{{ atl_product_user }}"
group: "{{ atl_product_user }}"
mode: 0644
when: jira_config_properties.stat.exists
- name: Override JVM memory settings.

View File

@@ -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) }}"

View File

@@ -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

View File

@@ -1,10 +1,33 @@
---
- 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
- 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
- name: Install other base packages on Amazon Linux
yum:

View File

@@ -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-{{ debian_architecture }}"
priority: 99
when: atl_use_system_jdk

View File

@@ -14,6 +14,11 @@ atl_startup_exec_path: "{{ atl_product_installation_current }}/{{ atl_startup_sc
atl_startup_exec_options: ["-fg"]
atl_startup_systemd_params: []
atl_systemd_service_dir_map:
amazon: "/usr/lib/systemd/system"
ubuntu: "/lib/systemd/system"
atl_systemd_service_dir: "{{ atl_systemd_service_dir_map[ansible_distribution|lower] }}"
atl_systemd_service_name: "{{ atl_product_edition }}.service"
atl_systemd_service_target: "multi-user.target"

View File

@@ -29,8 +29,11 @@
pre_tasks:
- name: Create systemd dir if necessary
file:
path: '/usr/lib/systemd/system/'
path: "{{ item }}"
state: directory
with_items:
- '/usr/lib/systemd/system/'
- '/lib/systemd/system/'
roles:
- role: product_startup

View File

@@ -7,7 +7,8 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
def test_service_file(host):
f = host.file('/lib/systemd/system/bitbucket.service')
systemd_prefix = "/lib" if host.system_info.distribution == "ubuntu" else "/usr/lib"
f = host.file(systemd_prefix+'/systemd/system/bitbucket.service')
assert f.contains("^ExecStart=/opt/atlassian/bitbucket/current/bin/start-bitbucket.sh -fg --no-search$")
assert f.contains("^UMask=0027$")
assert f.contains("^LimitNOFILE=4096$")

View File

@@ -12,8 +12,11 @@
pre_tasks:
- name: Create systemd dir if necessary
file:
path: '/usr/lib/systemd/system/'
path: "{{ item }}"
state: directory
with_items:
- '/usr/lib/systemd/system/'
- '/lib/systemd/system/'
roles:
- role: product_startup

View File

@@ -7,7 +7,8 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
def test_service_file(host):
f = host.file('/lib/systemd/system/jira-software.service')
systemd_prefix = "/lib" if host.system_info.distribution == "ubuntu" else "/usr/lib"
f = host.file(systemd_prefix+'/systemd/system/jira-software.service')
assert f.contains("^ExecStart=/opt/atlassian/jira-software/current/bin/start-jira.sh -fg$")
assert f.user == 'root'
assert f.group == 'root'

View File

@@ -20,8 +20,11 @@
pre_tasks:
- name: Create systemd dir if necessary
file:
path: '/usr/lib/systemd/system/'
path: "{{ item }}"
state: directory
with_items:
- '/usr/lib/systemd/system/'
- '/lib/systemd/system/'
roles:
- role: product_startup

View File

@@ -7,7 +7,8 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
def test_service_file(host):
f = host.file('/lib/systemd/system/synchrony.service')
systemd_prefix = "/lib" if host.system_info.distribution == "ubuntu" else "/usr/lib"
f = host.file(systemd_prefix+'/systemd/system/synchrony.service')
assert f.contains("^ExecStart=/opt/atlassian/bin/start-synchrony$")
assert f.contains("^EnvironmentFile=/etc/atl$")
assert f.contains("^EnvironmentFile=/etc/atl.synchrony$")

View File

@@ -1,17 +1,9 @@
---
- name: "Set the systemd_dir"
set_fact:
systemd_dir: "{% if ansible_distribution|lower=='ubuntu' %}/lib/systemd/system{% else %}/usr/lib/systemd/system{% endif %}"
- name: "systemd_dir debug"
debug:
msg: "systemd_dir {{ systemd_dir }}"
- name: "Install systemd service file"
template:
src: "product.service.j2"
dest: "{{ systemd_dir }}/{{ atl_systemd_service_name }}"
dest: "{{ atl_systemd_service_dir }}/{{ atl_systemd_service_name }}"
owner: root
group: root
mode: 0640