diff --git a/roles/mail_forwarder/defaults/main.yml b/roles/mail_forwarder/defaults/main.yml index 9aff8c79653f0a08fcfe6f90e58a3df916df6f63..e7dcda4ed297d54c66f03a91194cc5814bfdbc15 100644 --- a/roles/mail_forwarder/defaults/main.yml +++ b/roles/mail_forwarder/defaults/main.yml @@ -1,7 +1,7 @@ --- local_mail_aliases: {} -smtp_from_relay_allowed: True +smtp_from_relay_allowed: true smtp_relay_host: "" smtp_relay_truststore: "{{ lookup('file', tls_certificate_dir + '/truststore.pem') }}" smtp_relay_host_port: null diff --git a/roles/mail_forwarder/molecule/default/create.yml b/roles/mail_forwarder/molecule/default/create.yml index f8eb37cd4df02c540216c02791d0c50870986202..ce8657f9bae3be7f42731fd1efe77e87a62afcd9 100644 --- a/roles/mail_forwarder/molecule/default/create.yml +++ b/roles/mail_forwarder/molecule/default/create.yml @@ -2,7 +2,7 @@ - name: Create hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/mail_forwarder/molecule/default/destroy.yml b/roles/mail_forwarder/molecule/default/destroy.yml index 3972a2df8fafe515b30a74f951499b83aae8449c..8f0a3703672765e77f4f1a3a8046a1f2b561a7a8 100644 --- a/roles/mail_forwarder/molecule/default/destroy.yml +++ b/roles/mail_forwarder/molecule/default/destroy.yml @@ -3,7 +3,7 @@ - name: Destroy hosts: localhost connection: local - gather_facts: False + gather_facts: false no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}" vars: molecule_file: "{{ lookup('env', 'MOLECULE_FILE') }}" diff --git a/roles/mail_forwarder/molecule/default/group_vars/parameters-mandatory.yml b/roles/mail_forwarder/molecule/default/group_vars/parameters-mandatory.yml new file mode 100644 index 0000000000000000000000000000000000000000..9dca40540130109a6cb72761f1249bb3c194113a --- /dev/null +++ b/roles/mail_forwarder/molecule/default/group_vars/parameters-mandatory.yml @@ -0,0 +1,4 @@ +--- + +# Global common parameters. +tls_certificate_dir: tests/data/x509/ diff --git a/roles/mail_forwarder/molecule/default/group_vars/parameters-no-incoming.yml b/roles/mail_forwarder/molecule/default/group_vars/parameters-no-incoming.yml new file mode 100644 index 0000000000000000000000000000000000000000..3630e68710c6bd70c8b073d0f6bfa9c94a22679e --- /dev/null +++ b/roles/mail_forwarder/molecule/default/group_vars/parameters-no-incoming.yml @@ -0,0 +1,9 @@ +--- + +smtp_relay_host: mail-server +smtp_from_relay_allowed: false +smtp_relay_truststore: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" + +# common +ca_certificates: + testca: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" diff --git a/roles/mail_forwarder/molecule/default/group_vars/parameters-optional.yml b/roles/mail_forwarder/molecule/default/group_vars/parameters-optional.yml new file mode 100644 index 0000000000000000000000000000000000000000..cc643b03c25e1630886fd286648f466ba9ac4260 --- /dev/null +++ b/roles/mail_forwarder/molecule/default/group_vars/parameters-optional.yml @@ -0,0 +1,12 @@ +--- + +local_mail_aliases: + root: "root testuser" +smtp_from_relay_allowed: true +smtp_relay_host: mail-server +smtp_relay_host_port: 27 +smtp_relay_truststore: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" + +# common +ca_certificates: + testca: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" diff --git a/roles/mail_forwarder/molecule/default/molecule.yml b/roles/mail_forwarder/molecule/default/molecule.yml index cf0918496f88fe2b4719810bd6fcec4a81dd56a8..913d73e7edee357aa900bc1ad432120811aeda3e 100644 --- a/roles/mail_forwarder/molecule/default/molecule.yml +++ b/roles/mail_forwarder/molecule/default/molecule.yml @@ -9,6 +9,8 @@ driver: lint: name: yamllint + options: + config-file: ../../.yamllint.yml platforms: diff --git a/roles/mail_forwarder/molecule/default/playbook.yml b/roles/mail_forwarder/molecule/default/playbook.yml index 997a28c7bc51b15aebd874fb8ebf4ebbdcad2912..60ff856f3fa8872ff79627c723791b8435653e45 100644 --- a/roles/mail_forwarder/molecule/default/playbook.yml +++ b/roles/mail_forwarder/molecule/default/playbook.yml @@ -1,36 +1,6 @@ --- -- hosts: parameters-mandatory - become: yes +- hosts: parameters-mandatory,parameters-optional,parameters-no-incoming + become: true roles: - - role: mail_forwarder - - # Global common parameters. - tls_certificate_dir: tests/data/x509/ - -- hosts: parameters-optional - become: yes - roles: - - role: mail_forwarder - local_mail_aliases: - root: "root testuser" - smtp_from_relay_allowed: True - smtp_relay_host: mail-server - smtp_relay_host_port: 27 - smtp_relay_truststore: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" - - # common - ca_certificates: - testca: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" - -- hosts: parameters-no-incoming - become: yes - roles: - - role: mail_forwarder - smtp_relay_host: mail-server - smtp_from_relay_allowed: False - smtp_relay_truststore: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" - - # common - ca_certificates: - testca: "{{ lookup('file', 'tests/data/x509/ca.cert.pem') }}" + - mail_forwarder diff --git a/roles/mail_forwarder/molecule/default/prepare.yml b/roles/mail_forwarder/molecule/default/prepare.yml index faacc4fd4b8028334693993f3e7c6aa40a801e74..b4dbf17b1d43eaea73a941f62e5e3282f3074511 100644 --- a/roles/mail_forwarder/molecule/default/prepare.yml +++ b/roles/mail_forwarder/molecule/default/prepare.yml @@ -2,24 +2,24 @@ - name: Prepare hosts: all - gather_facts: False + gather_facts: false tasks: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) - become: True - changed_when: False + become: true + changed_when: false - hosts: all - become: yes + become: true tasks: - name: Update all caches to avoid errors due to missing remote archives apt: - update_cache: yes - changed_when: False + update_cache: true + changed_when: false - hosts: all - become: yes + become: true tasks: - name: Set-up the hosts file @@ -42,18 +42,18 @@ 10.31.127.32: "parameters-no-incoming-stretch64" - hosts: clients - become: yes + become: true tasks: - name: Install SWAKS for testing SMTP capability apt: name: swaks - state: installed + state: present - name: Install tool for testing TCP connectivity apt: name: hping3 - state: installed + state: present - name: Deploy CA certificate copy: @@ -71,7 +71,7 @@ command: /usr/sbin/update-ca-certificates --fresh - hosts: mail-servers - become: yes + become: true tasks: - name: Deploy CA certificate @@ -96,10 +96,15 @@ - mail-server_smtp.key.pem - name: Install Postfix - apt: name="postfix" state=installed + apt: + name: "postfix" + state: present - name: Purge Exim configuration - apt: name="exim4*" state=absent purge=yes + apt: + name: "exim4*" + state: absent + purge: true - name: Deploy Postfix configuration copy: @@ -114,16 +119,16 @@ - name: Install tool for testing TCP connectivity apt: name: hping3 - state: installed + state: present - name: Install SWAKS for testing SMTP capability apt: name: swaks - state: installed + state: present - name: Set-up port forwarding command: "iptables -t nat -A PREROUTING -p tcp -m tcp --dport 27 -j REDIRECT --to-ports 25" - changed_when: False + changed_when: false handlers: @@ -136,7 +141,7 @@ state: restarted - hosts: parameters-optional - become: yes + become: true tasks: - name: Create additional group for testing local aliases diff --git a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py index 62733713a5bdc949f51766c5887a7a8fa9d2a13e..a4679f27edb4e6fee17257b2eacb4a759d977c6f 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py +++ b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_client.py @@ -1,8 +1,10 @@ +import os + import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('client1') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['client1']) def test_connectivity_from_client(host): diff --git a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py index 3adfea1b8cf2a3436791b94973a028602a2f6aec..bb6e068cc793c8982137b7c1f9e55983a8d3840a 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py +++ b/roles/mail_forwarder/molecule/default/tests/test_connectivity_from_relay.py @@ -1,8 +1,10 @@ +import os + import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('mail-server') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['mail-server']) def test_connectivity_from_relay(host): diff --git a/roles/mail_forwarder/molecule/default/tests/test_default.py b/roles/mail_forwarder/molecule/default/tests/test_default.py index a55c93a315e96e75b2f55118557f01a32fff4c05..5354fbadab08c7ac33c51f2cf3abc547239af2ae 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_default.py +++ b/roles/mail_forwarder/molecule/default/tests/test_default.py @@ -1,8 +1,10 @@ +import os + import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts(['parameters-mandatory', 'parameters-optional', 'parameters-no-incoming']) + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-mandatory', 'parameters-optional', 'parameters-no-incoming']) def test_installed_packages(host): diff --git a/roles/mail_forwarder/molecule/default/tests/test_mandatory.py b/roles/mail_forwarder/molecule/default/tests/test_mandatory.py index c9ca762319df39de9bcdea25bcebbece2b99698c..fbb3f090a5ca8a7e1d88e4fe0c0e4e7bacddd04d 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_mandatory.py +++ b/roles/mail_forwarder/molecule/default/tests/test_mandatory.py @@ -1,12 +1,12 @@ +import os import re import time - import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-mandatory') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-mandatory']) def test_smtp_relay_truststore_file(host): diff --git a/roles/mail_forwarder/molecule/default/tests/test_optional.py b/roles/mail_forwarder/molecule/default/tests/test_optional.py index f1661e45088c95c2544e7c38ac75e79f47f23ef0..1b9dc0a81f3bb9ff8c35daf315100bf6324a3fa7 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_optional.py +++ b/roles/mail_forwarder/molecule/default/tests/test_optional.py @@ -1,12 +1,12 @@ +import os import re import time - import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-optional') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-optional']) def test_smtp_relay_truststore_file(host): diff --git a/roles/mail_forwarder/molecule/default/tests/test_smtp_relay_host_port.py b/roles/mail_forwarder/molecule/default/tests/test_smtp_relay_host_port.py index e303f7fdd05be0d1e534929fc854bfcecd628006..165c0ac938fbc1f6c4c979af8cd5f25489e1769e 100644 --- a/roles/mail_forwarder/molecule/default/tests/test_smtp_relay_host_port.py +++ b/roles/mail_forwarder/molecule/default/tests/test_smtp_relay_host_port.py @@ -1,3 +1,4 @@ +import os import re import time @@ -6,7 +7,7 @@ import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( - '.molecule/ansible_inventory.yml').get_hosts('parameters-no-incoming') + os.environ['MOLECULE_INVENTORY_FILE']).get_hosts(['parameters-no-incoming']) def test_postfix_main_cf_file_content(host): diff --git a/roles/mail_forwarder/tasks/main.yml b/roles/mail_forwarder/tasks/main.yml index 2b397b9df02ced774c01fab71b1f40f51bf5301a..6e85ef70fda13c8cafae7e18d6caee3aaaad92ac 100644 --- a/roles/mail_forwarder/tasks/main.yml +++ b/roles/mail_forwarder/tasks/main.yml @@ -3,18 +3,18 @@ - name: Install Postfix apt: name: postfix - state: installed + state: present - name: Install procmail apt: name: procmail - state: installed + state: present - name: Purge Exim configuration apt: name: "exim4*" state: absent - purge: yes + purge: true - name: Deploy the SMTP relay TLS truststore copy: @@ -77,7 +77,7 @@ - name: Install SWAKS apt: name: swaks - state: installed + state: present - name: Explicitly run all handlers include: ../handlers/main.yml