From fc152824d55581898f2e647a282734e5a00a5070 Mon Sep 17 00:00:00 2001 From: paulfantom Date: Mon, 25 Jun 2018 22:53:37 +0200 Subject: [PATCH] add alternative settings test scenario --- molecule/alternative/molecule.yml | 50 ++++++++++++++++++++++++ molecule/alternative/playbook.yml | 14 +++++++ molecule/alternative/tests/test_minio.py | 44 +++++++++++++++++++++ templates/minio.service.j2 | 2 +- 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 molecule/alternative/molecule.yml create mode 100644 molecule/alternative/playbook.yml create mode 100644 molecule/alternative/tests/test_minio.py diff --git a/molecule/alternative/molecule.yml b/molecule/alternative/molecule.yml new file mode 100644 index 0000000..41bef2b --- /dev/null +++ b/molecule/alternative/molecule.yml @@ -0,0 +1,50 @@ +--- +driver: + name: docker +lint: + name: yamllint + +platforms: + - name: minio-centos-7 + image: paulfantom/centos-molecule:7 + privileged: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - name: minio-fedora-27 + image: paulfantom/fedora-molecule:27 + privileged: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - name: minio-debian-9 + image: paulfantom/debian-molecule:9 + privileged: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - name: minio-ubuntu-18.04 + image: paulfantom/ubuntu-molecule:18.04 + privileged: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + - name: minio-ubuntu-16.04 + image: paulfantom/ubuntu-molecule:16.04 + privileged: true + volumes: + - /sys/fs/cgroup:/sys/fs/cgroup:ro + +provisioner: + name: ansible + lint: + name: ansible-lint + playbooks: + create: ../default/create.yml + prepare: ../default/prepare.yml + converge: playbook.yml + destroy: ../default/destroy.yml + +scenario: + name: alternative +verifier: + name: testinfra + lint: + name: flake8 + enabled: true diff --git a/molecule/alternative/playbook.yml b/molecule/alternative/playbook.yml new file mode 100644 index 0000000..e9a7446 --- /dev/null +++ b/molecule/alternative/playbook.yml @@ -0,0 +1,14 @@ +--- + +- hosts: all + any_errors_fatal: true + roles: + - ansible-minio + vars: + # minio_server_envfile: "/opt/minio" + minio_server_addr: ":80" + minio_server_datadirs: + - "/srv/data1" + - "/srv/data2" + - "/srv/data3" + - "/srv/data4" diff --git a/molecule/alternative/tests/test_minio.py b/molecule/alternative/tests/test_minio.py new file mode 100644 index 0000000..d09f8d8 --- /dev/null +++ b/molecule/alternative/tests/test_minio.py @@ -0,0 +1,44 @@ +import yaml +import pytest +import testinfra.utils.ansible_runner + +testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( + '.molecule/ansible_inventory').get_hosts('all') + + +@pytest.fixture() +def AnsibleDefaults(Ansible): + with open("./defaults/main.yml", 'r') as stream: + return yaml.load(stream) + + +@pytest.mark.parametrize("dirs", [ + "/minio-test" +]) +def test_directories(host, dirs): + d = host.file(dirs) + assert d.is_directory + assert d.exists + assert d.user == AnsibleDefaults['minio_user'] + assert d.group == AnsibleDefaults['minio_group'] + assert oct(d.mode) == '0750' + + +@pytest.mark.parametrize('minio_bin_var', [ + 'minio_server_bin', + 'minio_client_bin', +]) +def test_minio_installed(File, AnsibleDefaults, minio_bin_var): + + f = File(AnsibleDefaults[minio_bin_var]) + assert f.exists + assert f.user == AnsibleDefaults['minio_user'] + assert f.group == AnsibleDefaults['minio_group'] + assert oct(f.mode) == '0755' + + +def test_minio_service(Service): + + s = Service('minio') + assert s.is_running + assert s.is_enabled diff --git a/templates/minio.service.j2 b/templates/minio.service.j2 index 87cf047..96e2ef1 100644 --- a/templates/minio.service.j2 +++ b/templates/minio.service.j2 @@ -39,7 +39,7 @@ SendSIGKILL=no SuccessExitStatus=0 -{% if minio_server_addr.split(':')[-1] < 1024 %} +{% if (minio_server_addr.split(':')[-1] | int) < 1024 %} AmbientCapabilities=CAP_NET_BIND_SERVICE {% endif %}