I have just written a promise which checks for the ntpd and starts if it 
is not running. I know there are more elegant solutions, but I know that 
this example works:

15 bundle agent check_service_running {
 16
 17     vars:
 18         "service" slist => {"ntp"};
 19         "daemon_path" string => "/etc/init.d";
 20
 21     processes:
 22
 23 #       buildserver::
 24             "$(service)"
 25                 comment => "Counting amount of processes for 
'$(service)'",
 26                 process_count => up("$(service)");
 27
 28     commands:
 29
 30         "${daemon_path}/${service}"
 31             comment => "Executing command '${daemon_path}/${service} 
start'",
 32             ifvarclass => "${service}_up",
 33             args => " start";
 34 }
 35
 36 body process_count up(s) {
 37
 38     match_range => "0,0";
 39     in_range_define => {"$(s)_up"};
 40     ifelapsed => "1";
 41 }

Note that you may want to add a bundlesequence to the file. I don't need 
one since this check is called from the bundlesequence inside my 
promise.cf. For testing purposes I have set 'ifelapsed' to 1 which may not 
be what is needed in a production environment. You may add more services 
to the line ' "service" slist => {"ntp"};' and it should work, as long as 
the service may be started with '/etc/init.d/SERVICENAME start'. I didn't 
check it so far, so just try.

Bernd

Bernd Adamowicz | R&D BasisTechnology
Tel.: +49 (0) 6227 385 332 82 | Fax: +49 (0) 6227 385 588
bernd.adamow...@external.icw-global.com | www.icw.de | www.lifesensor.com







From:
Aleksey Tsalolikhin <atsaloli.t...@gmail.com>
To:
cfengine <help-cfengine@cfengine.org>
Date:
15.12.2009 08:26
Subject:
need simple examples of cfengine3
Sent by:
help-cfengine-boun...@cfengine.org



I am working on an article to introduce more sysadmins to cfengine 3,
and I need help from the cfengine community putting together working
standalone examples of the power and simplicity of cfengine 3.

By standalone, I mean I should be able to run "cf-agent -f
example1.cf" and have example1.cf be the only file in
/var/cfengine/inputs, and have it work.

Here is what I would like to see:

1. Make sure /proc/sys/vm/swappiness is set to 0 on Linux servers.

2. Make sure root crontab contains an entry for "0 0 * * * 
/sysadmin/nightly.sh"

3. Make sure ntpd and snmpd are running.

4. Alert an alert if any mounted filesystem exceeds 75% utilization.

5. Alert if there is any account with uid 0 other than root.

That should be enough, I don't want to overwhelm my readers with too
many examples.

I am going to work on coding these up, but if you already have some
working code that does this, please let me know.

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





InterComponentWare AG:  
Vorstand: Dr. Lutz Kleinholz (Vors.), Dr. Georg Ralle, Jörg Stadler / 
Aufsichtsratsvors.: Prof. Dr. Christof Hettich  
Firmensitz: 69190 Walldorf, Industriestraße 41 / AG Mannheim HRB 351761 / 
USt.-IdNr.: DE 198388516  
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to