# # # body perms uperm(user,group,mode) { mode => "$(mode)"; rxdirs => "false"; groups => { "$(group)" }; owners => { "$(user)" }; } # # wmdelib.cf # bundle agent wmde_install_packages(pkgs,name) { packages: freebsd:: "$(pkgs)" policy => "present", package_module => pkg, handle => "$(name)_pkgs_installed", classes => results("namespace","$(name)"); debian:: "$(pkgs)" policy => "present", package_module => apt_get, handle => "$(name)_pkgs_installed", classes => results("namespace","$(name)"); } body perms wmde_perms(user,group,mode) { owners => { "$(user)" }; groups => { "$(group)" }; mode => "$(mode)"; rxdirs=>"false"; } bundle agent wmde_srv(service_name,cmd) { classes: "start" expression => strcmp("start","$(cmd)"); "restart" expression => strcmp("restart",cmd); commands: freebsd:: "/bin/sh" args => "-c '/usr/sbin/service $(service_name) onestatus > /dev/null && echo +$(service_name)_running || echo -$(service_name)_running'", inform => "false", module => "true", handle => "$(service_name)_status_tested"; "!$(service_name)_running&start":: "/bin/sh" args => "-c '/usr/sbin/service $(service_name) onestart 2> /dev/null > /dev/null && echo +$(service_name)_started || echo -$(service_name)_started'", module => "true", depends_on => {"$(service_name)_status_tested"}; "!$(service_name)_running&restart":: "/bin/sh" args => "-c '/usr/sbin/service $(service_name) onerestart 2> /dev/null > /dev/null && echo +$(service_name)_started || echo -$(service_name)_started'", module => "true", depends_on => {"$(service_name)_status_tested"}; reports: start:: # "MUST START"; !start:: # "MUST NOT START"; # running:: # "Server $(service_name) - running"; # !running:: # "Server $(service_name) - not running"; } body service_method wmde { service_type => "generic"; service_bundle => wmde_srv ($(this.promiser), $(this.service_policy)); } bundle agent wmde_service(service_name,start_cond, restart_cond) { services: "$(start_cond)":: "$(service_name)" service_policy => "start"; "$(restart_cond)":: "$(service_name)" service_policy => "restart"; reports: }