Forum: Cfengine Help
Subject: Re: Manage Solaris 10 Services (a working example)
Author: berntjernberg
Link to topic: https://cfengine.com/forum/read.php?3,20812,20824#msg-20824

Hi,

Here is how I do it. I have a list of services to disable/enable like in 
SST(JASS).



bundle common g
{

    vars:
        "svcadm"      string => "/usr/sbin/svcadm";
        "svcs"        string => "/usr/bin/svcs";

        "services_to_disable" slist => {
                                       "svc:/network/ntp:default",
                                       "svc:/network/ntp4:default",
                                       ....
                                       ....
                                       };

        "services_to_enable"  slist => {
                                       "svc:/site/openntpd:default",
                                       ....
                                       ....
                                       };
}

#####################################################
# Disable service.
#####################################################
bundle agent disable_service(service)
{
    vars:
        "service_status"  string => execresult("$(g.svcs) -Ho state $(service) 
2>/dev/null","useshell");

    classes:
        "service_exist"              not => regcmp("$(service_status)","");
        "service_disabled"    expression => 
regcmp("$(service_status)","disabled");

    commands:
        service_exist.!service_disabled::
            "$(g.svcadm)"
                args => "disable -s $(service)",
                classes => if_repaired("$(service)_disabled");

}

#####################################################
# Enable service.
#####################################################
bundle agent enable_service(service)
{
    vars:
        "service_status"  string => execresult("$(g.svcs) -Ho state $(service) 
2>/dev/null","useshell");

    classes:
        "service_exist"           not => regcmp("$(service_status)","");
        "service_enabled"  expression => regcmp("$(service_status)","online");

    commands:
        service_exist.!service_enabled::
            "$(g.svcadm)"
                args => "enable -s $(service)",
                classes => if_repaired("$(service)_enabled");

}

###############################################
# Disable services.
###############################################
bundle agent disable_services
{
    vars:
        "services_to_disable" slist => { @(g.services_to_disable) };

    methods:
        "Disable" usebundle => disable_service("$(services_to_disable)");
}

###############################################
# Enable services.
###############################################
bundle agent enable_services
{
    vars:
        "services_to_enable" slist => { @(g.services_to_enable) };

    methods:
        "Enable" usebundle => enable_service("$(services_to_enable)");
}



and then I run it with



 "JASS" usebundle => disable_services;
 "JASS" usebundle => enable_services;



_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to