wmdeit-cf-wmdelib/dovecot.cf

137 lines
3.5 KiB
CFEngine3

#
#
#
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";
"submission_key" string => "$(cfg_dir)/private/submission.key";
"submission_cert" string => "$(cfg_dir)/private/submission.crt";
"service_name" string => "dovecot";
"pkgs" slist => {
"dovecot-core",
"dovecot-mysql",
"dovecot-managesieved",
# "dovecot-submissiond",
"dovecot-lmtpd",
"dovecot-imapd",
"dovecot-pop3d"
};
centos::
"pkgs" slist => {
"dovecot",
"dovecot-mysql",
};
"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";
"submission_key" string => "$(cfg_dir)/private/submission.key";
"submission_cert" string => "$(cfg_dir)/private/submission.crt";
"service_name" string => "dovecot";
methods:
"any" usebundle => wmde_install_packages(@(pkgs),"dovecot");
"any" usebundle => wmde_service("$(service_name)","dovecot_kept","dovecot_repaired"),
depends_on => {
"dovecot_pkgs_installed",
"dovecot_cfg_created",
"dovecot_imap_key_installed",
"dovecot_imap_cert_installed",
"dovecot_submission_key_installed",
"dovecot_submission_cert_installed",
};
services:
files:
"$(cfg_dir)/."
create => "true",
perms => mog("755","root","root"),
depends_on => {"dovecot_pkgs_installed"},
handle => "dovecot_cfg_dir_created";
"$(dovecot_conf)"
classes => if_repaired(dovecot_repaired),
create => "true",
perms => mog("644","root","root"),
template_method => "mustache",
depends_on => {"dovecot_pkgs_installed","dovecot_cfg_dir_created"},
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");
"$(submission_cert)"
handle => "dovecot_submission_cert_installed",
classes => if_repaired(dovecot_repaired),
copy_from => local_dcp( execresult( "/usr/bin/readlink -qfn $(cfg[submission_cert])","noshell" )),
perms => mog("600","root","root");
"$(submission_key)"
handle => "dovecot_submission_key_installed",
classes => if_repaired(dovecot_repaired),
copy_from => local_dcp( execresult( "/usr/bin/readlink -qfn $(cfg[submission_key])","noshell" )),
perms => mog("600","root","root");
reports:
# "IMAP_CERT: $(imap_cert)";
#
# dovecot_kept::
# "DOVECOT kept";
#
# dovecot_repaired::
# "DOVECOT repaired";
}
bundle agent dovecot_vimbadmin_sql(cfg,dovecot_cfg)
{
vars:
"cfg_file" string => "$(sys.workdir)/data/agent/dovecot/vimbadmin-sql.comf";
files:
"$(cfg_file)"
classes => if_repaired(dovecot_repaired),
create => "true",
template_method => "mustache",
edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/dovecot/vimbadmin-sql.conf.mustache";
}