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
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine