Christian Boltz ed723b
postfix:
Christian Boltz ed723b
  pkg.installed: []
Christian Boltz ed723b
  service.running:
Christian Boltz ed723b
    - enable: True
Christian Boltz ed723b
Christian Boltz ed723b
# update /etc/aliases
Christian Boltz ed723b
{%- for user, target in salt['pillar.get']('profile:postfix:aliases', {}).items() %}
Christian Boltz ed723b
postfix_alias_present_{{ user }}:
Christian Boltz ed723b
  alias.present:
Christian Boltz ed723b
    - name: {{ user }}
Christian Boltz ed723b
    - target: {{ target }}
Christian Boltz ed723b
{%- endfor %}
Christian Boltz ed723b
Christian Boltz ed723b
# update main.cf
Christian Boltz ed723b
# (only update options given in profile:postfix:maincf pillar, other settings stay unchanged)
Christian Boltz ed723b
{%- for option, value in salt['pillar.get']('profile:postfix:maincf', {}).items() %}
Christian Boltz ed723b
/etc/postfix/main.cf_{{ option }}:
Christian Boltz ed723b
  file.replace:
Christian Boltz ed723b
    - name: /etc/postfix/main.cf
Christian Boltz ed723b
    - pattern: '^{{ option }} *=.*$'
Christian Boltz ed723b
    - repl: '{{ option }} = {{ value }}'
Christian Boltz ed723b
    - append_if_not_found: True
Christian Boltz ed723b
    - require:
Christian Boltz ed723b
      - pkg: postfix
Christian Boltz ed723b
    - watch_in:
Christian Boltz ed723b
      - service: postfix
Christian Boltz ed723b
{%- endfor %}