Files @ 36e1c9460cd6
Branch filter:

Location: majic-ansible-roles/roles/mail_forwarder/playbook.yml - annotation

branko
MAR-27: Added initial scaffolding for testing mail_forwarder role:

- Fixed issues reported by Ansible linting check (some mode-related syntax and
one ignore.
- Added Molecule configuration for testing mandatory and optional
parameters. Covers both Debian Jessie and Debian Stretch.
- Added test playbook for setting-up the test instances. A helper relay mail
server.
- Updated both mail_server and mail_forwarder to fall-back to using
native (/etc/hosts) resolving if DNS fails. Solves issue with test environment
not having proper DNS set-up for all domains etc.
- Added a number of data/config files associated with tests.
- Added dummy test file.
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
36e1c9460cd6
---

- hosts: all
  tasks:

    - name: Update all caches to avoid errors due to missing remote archives
      apt:
        update_cache: yes

- hosts: all
  tasks:

    - name: Set-up /etc/hosts entries
      lineinfile:
        dest: /etc/hosts
        line: "{{ item.key }} {{ item.value }}"
      with_dict:
        10.31.127.10: "mail-server domain1"
        10.31.127.20: "client1"
        10.31.127.30: "parameters-mandatory"
        10.31.127.31: "parameters-optional"

- hosts: client1
  tasks:

    - name: Install SWAKS for testing SMTP capability
      apt:
        name: swaks
        state: installed

    - name: Install tool for testing TCP connectivity
      apt:
        name: hping3
        state: installed

    - name: Deploy CA certificate
      copy:
        src: tests/data/x509/ca.cert.pem
        dest: /usr/local/share/ca-certificates/testca.crt
        owner: root
        group: root
        mode: 0644
      notify:
        - Update CA certificate cache

  handlers:

    - name: Update CA certificate cache
      command: /usr/sbin/update-ca-certificates --fresh

- hosts: mail-server
  tasks:

    - name: Deploy CA certificate
      copy:
        src: tests/data/x509/ca.cert.pem
        dest: /usr/local/share/ca-certificates/testca.crt
        owner: root
        group: root
        mode: 0644
      notify:
        - Update CA certificate cache

    - name: Deploy SMTP private key and certificate
      copy:
        src: "tests/data/x509/{{ item }}"
        dest: "/etc/ssl/{{ item }}"
        owner: root
        group: root
        mode: 0600
      with_items:
        - mail-server_smtp.cert.pem
        - mail-server_smtp.key.pem

    - name: Install Postfix
      apt: name="postfix" state=installed

    - name: Purge Exim configuration
      apt: name="exim4*" state=absent purge=yes

    - name: Deploy Postfix configuration
      copy:
        src: tests/data/main.cf
        dest: /etc/postfix/main.cf
        owner: root
        group: root
        mode: 0644
      notify:
        - Restart Postfix

  handlers:

    - name: Update CA certificate cache
      command: /usr/sbin/update-ca-certificates --fresh

    - name: Restart Postfix
      service:
        name: postfix
        state: restarted

- hosts: parameters-mandatory
  roles:
    - role: mail_forwarder

      # Global common parameters.
      tls_certificate_dir: tests/data/x509/

- hosts: parameters-optional
  roles:
    - role: mail_forwarder
      local_mail_aliases:
        root: "root testuser"
      smtp_relay_host: mail-server
      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-optional
  tasks:

    - name: Create additional group for testing local aliases
      group:
        name: testuser

    - name: Create additional user for testing local aliases
      user:
        name: testuser
        group: testuser