# # # 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)"); fedora|centos:: "$(pkgs)" policy => "present", package_module => yum, 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) { classes: freebsd:: "service_running" expression => returnszero("/usr/sbin/service $(service_name) onestatus >/dev/null 2>&1", "useshell"); commands: "freebsd&(!service_running)&($(start_cond))":: "/usr/sbin/service" args => "$(service_name) onestart >/dev/null 2>&1", contain => wmde_cmd_useshell, handle => "$(handle)_service_started"; "freebsd&(service_running)&($(start_cond))":: "/usr/bin/true" inform => "false", handle => "$(handle)_service_started"; "freebsd&($(restart_cond))":: "/usr/sbin/service" args => "$(service_name) onerestart >/dev/null 2>&1", contain => wmde_cmd_useshell, handle => "$(handle)_service_restarted"; services: "(!freebsd)&($(start_cond))":: "$(service_name)" service_policy => "start", handle => "$(handle)_service_started"; "(!freebsd)&($(restart_cond))":: "$(service_name)" service_policy => "restart", handle => "$(handle)_service_restarted"; reports: } bundle agent wmde_restart_service(service_name, id) { commands: debian|centos|fedora:: "/bin/sh -c " args => "'/bin/echo $(id) > /dev/null && /usr/bin/systemctl restart $(service_name)'"; freebsd:: "/bin/sh -c " args => "'/bin/echo $(id) > /dev/null && /usr/sbin/service $(service_name) onerestart'"; } body contain wmde_cmd_useshell { useshell=>"useshell"; } bundle agent download_and_untar( name, sync_src, sync_dst, install_dir, test_file ) { classes: "$(name)_untar" expression => not(fileexists("$(test_file)")); files: "$(sync_dst)" copy_from => sync_cp("$(sync_src)","$(sys.policy_hub)"), handle => "$(name)_tgz_copied", classes => if_repaired ("$(name)_untar"), perms => m(644); commands: "$(name)_untar":: "/usr/bin/tar" args => "xzvf $(sync_dst) -C $(install_dir)", depends_on => {"$(name)_tgz_copied"}, handle => "$(name)_untarred"; reports: # "TESTFILE: $(test_file)"; } bundle agent install_apt_repo(name,repo_src,key_src,key_name) { classes: debian|ubuntu:: "do_install" expression => not(fileexists("/etc/apt/sources.list.d/$(name).list")); vars: do_install:: "pkgs" slist => { "curl", "ca-certificates", "lsb-release" }; "add_repo_cmd" string => "/usr/bin/add-apt-repository"; methods: do_install:: "any" usebundle => wmde_install_packages(@(pkgs),"apt_repo"); commands: do_install:: "/bin/sh" args => "$(sys.workdir)/inputs/$(def.wmde_libdir)/scripts/install-php-repo.sh $(name) $(repo_src) $(key_src) $(key_name)"; } bundle agent install_server_tools { vars: debian|fedora|centos:: "pkgs" slist => { "net-tools", "telnet", "tcpdump", "nmap" }; methods: debian|fedora|centos:: "any" usebundle => wmde_install_packages(@(pkgs),"server_tools"); }