--- - name: Prepare hosts: all 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 - hosts: all become: true tasks: - name: Update all caches to avoid errors due to missing remote archives apt: update_cache: true changed_when: false - name: Set-up /etc/hosts entries lineinfile: dest: /etc/hosts line: "{{ ansible_eth0.ipv4.address }} parameters-mandatory parameters-optional.local php-website" - name: Install curl for testing redirects and webpage content apt: name: curl state: present - name: Install swaks for testing mail forwarding apt: name: swaks state: present - name: Install Postfix for testing mail forwarding (Exim4 not covered) apt: name: postfix state: present - name: Install procmail for consistency with mail_server and mail_forwarder roles apt: name: procmail state: present - name: Update Postfix configuration lineinfile: path: /etc/postfix/main.cf regexp: "^{{ item.key }}" line: "{{ item.value }}" state: present with_dict: myhostname: "myhostname = {{ inventory_hostname }}" mailbox_command: 'mailbox_command = procmail -a "$EXTENSION"' notify: - Restart Postfix - name: Direct all mails from the root account to vagrant (Stretch image does not do that by default) lineinfile: path: /etc/aliases regexp: "^root" line: "root: vagrant" state: present notify: - Generate aliases database - name: Set-up group for an additional user group: name: user state: present - name: Set-up additional user for testing mail delivery user: name: user group: user shell: /bin/bash handlers: - name: Restart Postfix service: name: postfix state: restarted - name: Generate aliases database command: "/usr/bin/newaliases"