diff --git a/dovecot.cf b/dovecot.cf new file mode 100644 index 0000000..9c456a9 --- /dev/null +++ b/dovecot.cf @@ -0,0 +1,83 @@ +# +# +# + +bundle agent dovecot(cfg) +{ +vars: + freebsd:: + "cfg_dir" string => "/usr/local/etc/dovecot"; + "dovecot_conf" string => "$(cfg_dir)/dovecot.conf"; + + "pkgs" slist => { + "dovecot" + }; + debian:: + "cfg_dir" string => "/etc/dovecot"; + "dovecot_conf" string => "$(cfg_dir)/dovecot.conf"; + + "imap_key" string => "$(cfg_dir)/private/imap.key"; + "imap_cert" string => "$(cfg_dir)/private/imap.crt"; + + + "service_name" string => "dovecot"; + "pkgs" slist => { + "dovecot-core", + "dovecot-mysql", + "dovecot-managesieved", + "dovecot-submissiond", + "dovecot-lmtpd", + "dovecot-imapd", + "dovecot-pop3d" + + }; + + + + + +methods: + "any" usebundle => wmde_install_packages(@(pkgs),"dovecot"); + "any" usebundle => wmde_service("$(service_name)","dovecot_kept","dovecot_repaired"), + depends_on => { + "dovecot_pkgs_installed", + "dovecot_imap_key_installed", + "dovecot_imap_cert_installed", + "dovecot_cfg_created" + }; +services: + +files: + "$(dovecot_conf)" + classes => if_repaired(dovecot_repaired), + create => "true", + template_method => "mustache", + depends_on => {"dovecot_pkgs_installed"}, + handle => "dovecot_cfg_created", + edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/dovecot/dovecot.conf.mustache"; + + "$(imap_cert)" + handle => "dovecot_imap_cert_installed", + classes => if_repaired(dovecot_repaired), + copy_from => local_dcp( execresult( "/usr/bin/readlink -qfn $(cfg[imap_cert])","noshell" )), + perms => mog("600","root","root"); + + "$(imap_key)" + handle => "dovecot_imap_key_installed", + classes => if_repaired(dovecot_repaired), + copy_from => local_dcp( execresult( "/usr/bin/readlink -qfn $(cfg[imap_key])","noshell" )), + perms => mog("600","root","root"); + + + + +reports: + "IMAP_CERT: $(imap_cert)"; + + dovecot_kept:: + "DOVECOT kept"; + + dovecot_repaired:: + "DOVECOT repaired"; + +}