wmdeit-cf-wmdelib/opendkim.cf

110 lines
2.6 KiB
CFEngine3

#
# opendkim
#
bundle agent opendkim(cfg_param)
{
vars:
"service_name" string => "opendkim";
debian::
"pkgs" slist => {"opendkim"};
"uid" string => "opendkim";
"gid" string => "opendkim";
"cfg_file" string => "/etc/opendkim.conf";
"pid_file" string => "/run/opendkim/opendkim.pid";
centos::
"pkgs" slist => {"opendkim"};
"uid" string => "opendkim";
"gid" string => "opendkim";
"cfg_file" string => "/etc/opendkim.conf";
"pid_file" string => "/run/opendkim/opendkim.pid";
freebsd::
"pkgs" slist => {"opendkim"};
"uid" string => "mailnull";
"gid" string => "mailnull";
"cfg_file" string => "/usr/local/etc/mail/opendkim.conf";
"pid_file" string => "/var/run/opendkim.pid";
"service_name" string => "milter-opendkim";
any::
"default_cfg" data => '{
"uid": "$(uid)",
"gid": "$(gid)",
"milter_sock": "inet:4711@localhost",
"mynetworks": ["127.0.0.1"],
"pid_file": "$(pid_file)",
"domains":["*"]
}';
"cfg" data => mergedata(@(opendkim.default_cfg),@(opendkim.cfg_param));
"mynetworks_len" int => length(data_expand(@(cfg[mynetworks])));
"mynetworks_head" string => "$(cfg[mynetworks][0])";
"mynetworks_tail" slist => sublist(data_expand(@(cfg[mynetworks])),"tail",int(eval("$(mynetworks_len) - 1","math","infix")));
methods:
"any" usebundle => opendkim_systemd_overrides,
handle => "opendkim_overrides_done";
"any" usebundle => install_system_repos, handle => "opendkim_system_repos_installed";
"any" usebundle => wmde_install_packages(@(opendkim.pkgs),"opendkim"),
depends_on => {"opendkim_system_repos_installed" };
"any" usebundle => wmde_service("$(service_name)","opendkim_kept","opendkim_repaired"),
depends_on => {
"opendkim_overrides_done",
"opendkim_pkgs_installed",
"opendkim_cfg_done"
};
files:
"$(opendkim.cfg_file)"
create => "true",
edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/opendkim.conf.mustache",
template_method => "mustache",
template_data => bundlestate("opendkim"),
classes => if_repaired("opendkim_repaired"),
handle => "opendkim_cfg_done";
reports:
}
bundle agent opendkim_systemd_overrides
{
files:
freebsd::
"/etc/rc.conf.d/milteropendkim"
create=>"true",
content=>'
milteropendkim_uid="$(opendkim.cfg[uid])"
milteropendkim_gid="$(opendkim.cfg[gid])"
';
centos::
"/etc/systemd/system/opendkim.service.d/override.conf"
create => "true",
content => "
[Service]
User=root
Group=root
",
classes => if_repaired("opendkim_repaired"),
handle => "opendkim_systemd_override_created";
commands:
centos&opendkim_repaired::
"/usr/bin/systemctl"
args => "daemon-reload",
depends_on => {"opendkim_systemd_override_created"};
}