init.sls 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #
  2. # Postfix
  3. #
  4. # Force installation of bsd-mailx as it's not installed anymore in Debian Jessie..
  5. bsd-mailx:
  6. pkg.installed:
  7. - name: bsd-mailx
  8. postfix:
  9. pkg.installed:
  10. - name: postfix
  11. - require:
  12. - file: /etc/mailname
  13. service.running:
  14. - enable: true
  15. - reload: true
  16. #
  17. # Don't listen on port 25, by default, a unix socket is enough.
  18. /etc/postfix/master.cf:
  19. file.managed:
  20. - source:
  21. - salt://postfix/master.cf.{{ grains['id'] }}
  22. - salt://postfix/master.cf.{{ grains.oscodename }}
  23. - salt://postfix/master.cf
  24. - watch_in:
  25. - service: postfix
  26. /etc/postfix/main.cf:
  27. file.managed:
  28. - source:
  29. - salt://postfix/main.cf.{{ grains['id'] }}
  30. - salt://postfix/main.cf
  31. - template: jinja
  32. - watch_in:
  33. - service: postfix
  34. #
  35. # Send root mail to ops@ffho.net
  36. /etc/aliases:
  37. file.managed:
  38. - source:
  39. - salt://postfix/aliases.{{ grains['id'] }}
  40. - salt://postfix/aliases
  41. newaliases:
  42. cmd.wait:
  43. - name: /usr/bin/newaliases
  44. - watch:
  45. - file: /etc/aliases
  46. # Set mailname to node_id if not specified otherwise in node pillar.
  47. {% set mailname = salt['pillar.get']('nodes:' ~ grains['id'] ~ ':mailname', grains['id']) %}
  48. /etc/mailname:
  49. file.managed:
  50. - contents: "{{ mailname }}"
  51. #
  52. # Manage virtual domains and aliases on MX nodes
  53. #
  54. {% if 'mx' in salt['pillar.get']('nodes:' ~ grains['id'] ~ ':roles', []) %}
  55. /etc/postfix/virtual-domains:
  56. file.managed:
  57. - source: salt://postfix/virtual-domains
  58. postmap_domains:
  59. cmd.wait:
  60. - name: /usr/sbin/postmap /etc/postfix/virtual-domains
  61. - watch:
  62. - file: /etc/postfix/virtual-domains
  63. /etc/postfix/virtual-aliases:
  64. file.managed:
  65. - source: salt://postfix/virtual-aliases
  66. postmap_aliases:
  67. cmd.wait:
  68. - name: /usr/sbin/postmap /etc/postfix/virtual-aliases
  69. - watch:
  70. - file: /etc/postfix/virtual-aliases
  71. /etc/postfix/mynetworks:
  72. file.managed:
  73. - source: salt://postfix/mynetworks
  74. {% endif %}