# # # bundle agent rspamd(cfg) { classes: "runpw" expression => isvariable("cfg[password]"); vars: "cfgfiles" slist => { "local.d/milter_headers.conf", # "local.d/actions.conf", "local.d/worker-normal.inc", "local.d/worker-proxy.inc", "local.d/worker-controller.inc", "local.d/redis.conf", # "local.d/classifier-bayes.conf", # "local.d/worker-fuzzy.inc", # "local.d/fuzzy_check.conf" }; freebsd:: "pkgs" slist => {"rspamd"}; "cfg_dir" string => "/usr/local/etc/rspamd"; "service_name" string => "rspamd"; "root_user" string => "root"; "root_group" string => "wheel"; "rspamadm" string => "/usr/local/bin/rspamadm"; debian:: "pkgs" slist => {"rspamd"}; "cfg_dir" string => "/etc/rspamd"; "service_name" string => "rspamd"; "root_user" string => "root"; "root_group" string => "root"; "rspamadm" string => "/usr//bin/rspamadm"; centos:: "pkgs" slist => {"rspamd"}; "cfg_dir" string => "/etc/rspamd"; "service_name" string => "rspamd"; "root_user" string => "root"; "root_group" string => "root"; "rspamadm" string => "/usr//bin/rspamadm"; any:: "password" string => execresult("$(rspamadm) pw -p $(cfg[password])","noshell"); methods: "any" usebundle => install_rspamd_pkgs; "any" usebundle => wmde_service("$(service_name)","rspamd_kept","rspamd_repaired"), depends_on => {"rspamd_cfgs_done"}; files: "$(cfg_dir)/." perms => uperm("$(root_user)","$(root_group)","755"), depends_on => { "rspamd_pkgs_installed" }, handle => "rspamd_cfg_dir_created"; "$(cfg_dir)/$(cfgfiles)" create => "true", edit_template => "$(sys.workdir)/inputs/$(def.wmde_libdir)/templates/rspamd/$(cfgfiles).mustache", template_method => "mustache", perms => m("644"), template_data => bundlestate("$(this.bundle)"), depends_on => { "rspamd_pkgs_installed","rspamd_cfg_dir_created" }, classes => if_repaired(rspamd_repaired), handle => "rspamd_cfgs_done"; reports: # "RSPAMD: $(cfgjs)"; # "RSJ: $(worker_normalx)"; } bundle agent rspamd_install_yum_repo { classes: centos:: "install_yum_repo" expression => not(fileexists("/etc/yum.repos.d/rspamd.repo")); commands: install_yum_repo:: "wget" args => "-qO /etc/yum.repos.d/rspamd.repo https://rspamd.com/rpm-stable/centos-$(sys.os_version_major)/rspamd.repo && rpm --import https://rspamd.com/rpm-stable/gpg.key ", contain => wmde_cmd_useshell; } bundle agent install_rspamd_pkgs { methods: "any" usebundle => rspamd_install_yum_repo, handle => "rspamd_yum_repo_installed"; "any" usebundle => wmde_install_packages(@(rspamd.pkgs),"rspamd"), depends_on => {"rspamd_yum_repo_installed"}; }