From c639ad2bbb645d0267e4b9f781ed648865d63799 Mon Sep 17 00:00:00 2001 From: Steve Smith Date: Tue, 9 Apr 2019 16:18:47 +1000 Subject: [PATCH] DCD-224: Generalise and expand testing of product base role. --- roles/product_base/defaults/main.yml | 5 +++++ roles/product_base/molecule/default/molecule.yml | 6 ++++-- roles/product_base/molecule/default/playbook.yml | 1 + .../molecule/default/tests/test_default.py | 12 ++++++++++-- roles/product_base/tasks/amazon.yml | 8 ++++++++ roles/product_base/tasks/main.yml | 3 +++ roles/product_base/tasks/ubuntu.yml | 8 ++++++++ 7 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 roles/product_base/defaults/main.yml create mode 100644 roles/product_base/tasks/amazon.yml create mode 100644 roles/product_base/tasks/ubuntu.yml diff --git a/roles/product_base/defaults/main.yml b/roles/product_base/defaults/main.yml new file mode 100644 index 0000000..daab5f3 --- /dev/null +++ b/roles/product_base/defaults/main.yml @@ -0,0 +1,5 @@ +--- +java_version: "1.8.0" +java_major_version: "8" +postgres_version: "9.6" +git_version: "2.14.4" diff --git a/roles/product_base/molecule/default/molecule.yml b/roles/product_base/molecule/default/molecule.yml index 65faca2..c6a6d26 100644 --- a/roles/product_base/molecule/default/molecule.yml +++ b/roles/product_base/molecule/default/molecule.yml @@ -6,8 +6,10 @@ driver: lint: name: yamllint platforms: - - name: instance - image: centos:7 + - name: amazon_linux2 + image: amazonlinux:2 + - name: ubuntu_lts + image: ubuntu:bionic provisioner: name: ansible lint: diff --git a/roles/product_base/molecule/default/playbook.yml b/roles/product_base/molecule/default/playbook.yml index becadbf..874231e 100644 --- a/roles/product_base/molecule/default/playbook.yml +++ b/roles/product_base/molecule/default/playbook.yml @@ -6,4 +6,5 @@ atl_product_home: "/opt/atlassian/product" atl_installer_temp: "/opt/atlassian/temp" roles: + - role: linux_common - role: product_base diff --git a/roles/product_base/molecule/default/tests/test_default.py b/roles/product_base/molecule/default/tests/test_default.py index f7ecb48..8edad98 100644 --- a/roles/product_base/molecule/default/tests/test_default.py +++ b/roles/product_base/molecule/default/tests/test_default.py @@ -13,11 +13,19 @@ def test_user_created(host): @pytest.mark.parametrize('target', [ - '/opt/atlassian/product', - '/opt/atlassian/temp' + '/opt/atlassian/product', + '/opt/atlassian/temp' ]) def test_dirs_created(host, target): d = host.file(target) assert d.exists assert d.is_directory assert d.user == 'testuser' + +@pytest.mark.parametrize('target', [ + '/usr/bin/git', + '/usr/bin/psql', + '/usr/bin/javac' +]) +def test_package_exes(host, exe): + assert host.file(exe).exists diff --git a/roles/product_base/tasks/amazon.yml b/roles/product_base/tasks/amazon.yml new file mode 100644 index 0000000..747043c --- /dev/null +++ b/roles/product_base/tasks/amazon.yml @@ -0,0 +1,8 @@ +--- + +- name: Install Java and other base packages on Amazon Linux + yum: + name: + - java-{{ java_version }}-openjdk-devel + - git-{{ git_version }} + - postgresql diff --git a/roles/product_base/tasks/main.yml b/roles/product_base/tasks/main.yml index dd62a7e..130d3c7 100644 --- a/roles/product_base/tasks/main.yml +++ b/roles/product_base/tasks/main.yml @@ -1,5 +1,8 @@ --- +- name: Perform distro-specific tasks + include: "{{ ansible_distribution|lower }}.yml" + - name: Create product user user: name: "{{ atl_product_user }}" diff --git a/roles/product_base/tasks/ubuntu.yml b/roles/product_base/tasks/ubuntu.yml new file mode 100644 index 0000000..1fa8807 --- /dev/null +++ b/roles/product_base/tasks/ubuntu.yml @@ -0,0 +1,8 @@ +--- + +- name: Install Java and other base packages on Ubuntu + package: + name: + - openjdk-{{ java_major_version }}-jdk-headless + - postgresql-client + - git