暫無描述

dovecot.sls 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. include:
  2. - firewall.public.pop3s
  3. - firewall.public.imaps
  4. - systemd.helpers
  5. vmail:
  6. group.present:
  7. - system: False
  8. user.present:
  9. - system: False
  10. - gid: vmail
  11. - home: /data/vmail
  12. - createhome: False
  13. - require:
  14. - group: vmail
  15. /data/vmail:
  16. file.directory:
  17. - user: vmail
  18. - group: vmail
  19. - require:
  20. - user: vmail
  21. - group: vmail
  22. dovecot:
  23. pkg.installed:
  24. - pkgs:
  25. - dovecot-core
  26. - dovecot-imapd
  27. - dovecot-lmtpd
  28. - dovecot-mysql
  29. - dovecot-pop3d
  30. - require:
  31. - user: vmail
  32. - group: vmail
  33. - file: /data/vmail
  34. service.running:
  35. - require:
  36. - file: /etc/systemd/system/dovecot.socket
  37. - watch:
  38. - pkg: dovecot
  39. # Stop systemd from listening on the dovecot ports.
  40. /etc/systemd/system/dovecot.socket:
  41. file.symlink:
  42. - target: /dev/null
  43. - require:
  44. - pkg: dovecot
  45. - onchanges_in:
  46. - module: reload_systemd
  47. {% for file in [
  48. 'dovecot.conf',
  49. 'conf.d/10-auth.conf',
  50. 'conf.d/10-mail.conf',
  51. 'conf.d/10-master.conf',
  52. 'conf.d/10-ssl.conf',
  53. 'conf.d/auth-sql.conf.ext',
  54. ] %}
  55. /etc/dovecot/{{ file }}:
  56. file.managed:
  57. - source: salt://vmail/files/{{ grains['osfinger'] }}/dovecot/{{ file }}
  58. - template: jinja
  59. - require:
  60. - pkg: dovecot
  61. - watch_in:
  62. - service: dovecot
  63. {% endfor %}
  64. /etc/dovecot/dovecot-sql.conf.ext:
  65. file.managed:
  66. - source: salt://vmail/files/{{ grains['osfinger'] }}/dovecot/dovecot-sql.conf.ext
  67. - mode: 640
  68. - group: dovecot
  69. - template: jinja
  70. - context:
  71. db_host: {{ pillar['vmail']['db_host'] }}
  72. db_name: {{ pillar['vmail']['db_name'] }}
  73. db_user: {{ pillar['vmail']['db_user'] }}
  74. db_password: {{ pillar['vmail']['db_password'] }}
  75. - require:
  76. - pkg: dovecot
  77. - watch_in:
  78. - service: dovecot