--- - name: Install Postfix package: name: postfix state: present notify: - Restart Postfix - name: Create /usr/local/etc/mail file: path: /usr/local/etc/mail state: directory owner: root group: wheel mode: 0755 - name: Install Postfix mailer.conf copy: dest: /usr/local/etc/mail/mailer.conf src: /usr/local/share/postfix/mailer.conf.postfix remote_src: yes owner: root group: wheel mode: 0644 - name: Disable sendmail sysrc: name: sendmail_enable value: NONE - name: Make sure sendmail is stopped service: name: sendmail state: stopped - name: Disable sendmail periodic tasks lineinfile: path: /etc/periodic.conf owner: root group: wheel mode: 0444 regexp: '^{{ item }}=' line: '{{ item }}="NO"' with_items: '{{ sendmail_periodic }}' - name: Add /var/log/postfix to fstab mount: path: /var/log/postfix src: tmpfs fstype: tmpfs opts: 'rw,size={{ postfix_log_size }},mode={{ postfix_log_mode }},uid={{ postfix_log_uid }},gid={{ postfix_log_gid }},late' state: mounted - name: Create Postfix service directories file: path: '{{ s6_etc_dir }}/service/{{ item }}' state: directory owner: root group: wheel mode: 0755 with_items: '{{ postfix_service_dirs }}' - name: Generate Postfix service scripts template: dest: '{{ s6_etc_dir }}/service/{{ item }}' src: '{{ item }}.j2' mode: 0555 owner: root group: wheel with_items: '{{ postfix_service_scripts }}' notify: - Reload s6-rc - Restart Postfix - name: Generate Postfix service configuration copy: dest: '{{ s6_etc_dir }}/service/{{ item.name }}' content: '{{ item.content }}' mode: 0444 owner: root group: wheel loop_control: label: '{{ item.name }} = {{ item.content }}' notify: - Reload s6-rc - Restart Postfix with_items: '{{ postfix_service_config }}' - name: Generate Postfix maps template: dest: '/usr/local/etc/postfix/{{ item.name }}' src: '{{ item.name }}.j2' mode: 0444 owner: root group: wheel with_items: '{{ postfix_maps }}' notify: - Rebuild Postfix maps - Reload Postfix - name: Configure Postfix postconf: name: '{{ item.name }}' value: '{{ item.value | default(omit) }}' state: '{{ item.state | default(omit) }}' with_items: '{{ postfix_config }}' notify: - Reload Postfix - name: Configure Postfix services lineinfile: path: /usr/local/etc/postfix/master.cf regexp: '^{{ item.name }} +{{ item.type }}' value: '{{ item.value }}' with_items: '{{ postfix_services }}' notify: - Restart Postfix - name: Configure per service overrides postconf_master: name: '{{ item.name }}' value: '{{ item.value | default(omit) }}' state: '{{ item.state | default(omit) }}' with_items: '{{ postfix_params }}' notify: - Restart Postfix - name: Flush handlers meta: flush_handlers - name: Start Postfix command: fdmove -c 2 1 s6-rc -l {{ s6_live_dir }} -u -v 2 change postfix register: change changed_when: change.stdout | length > 0 - name: Enable Postfix lineinfile: path: '{{ s6_etc_dir }}/service/enabled/contents' regexp: "^postfix$" line: "postfix" notify: - Reload s6-rc - name: Flush handlers (again) meta: flush_handlers