ansible/roles/postfix/tasks/main.yml

145 lines
3.3 KiB
YAML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
- 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