I know for us here (running trucluster 5) we ran into the same problem, here is my modified runclient.sh script (the changes are basically I added the `hostname` part to the lock files:
#!/bin/sh
#----------------------------------------------------------------------------#
# Hobbit client bootup script. #
# #
# This invokes hobbitlaunch, which in turn runs the Hobbit client and any #
# extensions configured. #
# #
# Copyright (C) 2005 Henrik Storner <henrik (at) hswn.dk> #
# #
# This program is released under the GNU General Public License (GPL), #
# version 2. See the file "COPYING" for details. #
# #
#----------------------------------------------------------------------------#
#
# $Id: runclient.sh,v 1.6 2005/09/28 21:21:17 henrik Exp $
# Default settings for this client
MACHINEDOTS="`uname -n`" # This systems hostname
BBOSTYPE="`uname -s | tr '[A-Z]' '[a-z]'`" # This systems operating system in lowercase
BBOSSCRIPT="hobbitclient-$BBOSTYPE.sh"
# Commandline mods for the defaults
while test "$1" != ""
do
case "$1" in
--hostname=*)
MACHINEDOTS="`echo $1 | sed -e's/--hostname=//'`"
;;
--os=*)
BBOSTYPE="`echo $1 | sed -e's/--os=//' | tr '[A-Z]' '[a-z]'`"
;;
--help)
echo "Usage: $0 [--hostname=CLIENTNAME] [--os=rhel3|linux22] start|stop"
exit 0
;;
start)
CMD=$1
;;
stop)
CMD=$1
;;
restart)
CMD=$1
;;
esac
shift
done
OLDDIR="`pwd`"
cd "`dirname $0`"
HOBBITCLIENTHOME="`pwd`"
cd "$OLDDIR"
MACHINE="`echo $MACHINEDOTS | sed -e's/\./,/g'`"
export MACHINE MACHINEDOTS BBOSTYPE BBOSSCRIPT HOBBITCLIENTHOME
case "$CMD" in
"start")
if test ! -w $HOBBITCLIENTHOME/logs; then
echo "Cannot write to the $HOBBITCLIENTHOME/logs directory"
exit 1
fi
if test ! -w $HOBBITCLIENTHOME/tmp; then
echo "Cannot write to the $HOBBITCLIENTHOME/tmp directory"
exit 1
fi
if test -f $HOBBITCLIENTHOME/logs/clientlaunch.`hostname`.pid; then
echo "Hobbit client already running, re-starting it"
$0 stop
rm -f $HOBBITCLIENTHOME/logs/clientlaunch.`hostname`.pid
fi
$HOBBITCLIENTHOME/bin/hobbitlaunch --config=$HOBBITCLIENTHOME/etc/clientlaunch.cfg --log=$HOBBITCLIENTHOME/logs/clientlaunch.log --pidfile=$HOBBITCLIENTHOME/logs/clientlaunch.`hostname`.pid
if test $? -eq 0; then
echo "Hobbit client for $BBOSTYPE started on $MACHINEDOTS"
else
echo "Hobbit client startup failed"
fi
;;
"stop")
if test -f $HOBBITCLIENTHOME/logs/clientlaunch.`hostname`.pid; then
kill `cat $HOBBITCLIENTHOME/logs/clientlaunch.$MACHINEDOTS.pid`
echo "Hobbit client stopped"
else
echo "Hobbit client not running"
fi
;;
"restart")
if test -f $HOBBITCLIENTHOME/logs/clientlaunch.`hostname`.pid; then
$0 stop
else
echo "Hobbit client not running, continuing to start it"
fi
$0 start
;;
esac
exit 0
-----Original Message-----
From: David Gore [mailto:David.Gore (at) mci.com]
Sent: Wednesday, January 11, 2006 9:52 AM
To: hobbit (at) hswn.dk
Subject: Re: [hobbit] multiple hosts
Rolf,
I asked a similar question many months ago for our Digital UNIX (4.x)
boxes running in multiple clusters. I did not get any answer, so I had
to create a hack that does run multiple clients on each host. One
client is for the physical host and does, cpu, disk, etc, and one client
for the logical/virtual host that does the tasks specific to the
logical/virtual host. The runclient.sh script runs every ten minutes
via crontab, to make sure both clients are running and starts either
client if they are not. I also have custom versions of some of the
default Hobbit client scripts to support multiple clients on a single
host. So in short as far as I know, you are going to have to
hack/script your own solution. I don't mind sending you what my hobbit
scripts have turned into, but it may not be what you are looking for.
David Gore
*e-mail via SUSE Linux 9.3 and other open source tools.
Rolf Schrittenlocher wrote:
Hi,
as there was no answer to my first mail, I try again with other words:
Our machines may have one or more aliases (virtual hosts) which all
have DNS-entries. Normally we refer to the machines not using the
hostname but by the alias, each of them combined to a bundle of
functions and tasks. So a machine "frodo.xxx.de" might host
"webserver.xxx.de", "dnsserver.xxx.de" and "tolkserver.xxx.de". These
aliases and of course the tasks related to them are transferred to
another machine in case of hardware failure, maintenance, etc.
In bb-hosts we have an entry for each machine (to get data from this
machine in case there is no alias set on it) and of course for all
relevant aliases. What we need now is that the general client data
(cpu, disk, ssh, ...) for each machine appears both with the hostname
and all aliases set on it.
I added a script to runclient.sh which creates
~/client/etc/clientlaunch.cfg dynamically according to the aliases set
on the machine before starting the client. This assures that the
correct data is polled on the client. I may modify $MACHINE or Í may
use the CLIENT:hostname tag in bb-hosts to make the client send
messages with a different name. But that would require several
instances of the client running, somethin I dislike. I hope there is a
way to send the client data once and to make the server look at some
configuration file to see where he should present these data. Maybe
that possibility exists but I haven't found it yet. So I hope that
someone could indicate me where to search for the places which I have
to "hack" hoping that it is possible to do that with shell or perl as
my C-knowledge isn't so good. But even if C is necessary: Any hints
are appreciated.
Thanks Rolf
To unsubscribe from the hobbit list, send an e-mail to
hobbit-unsubscribe (at) hswn.dk
To unsubscribe from the hobbit list, send an e-mail to
hobbit-unsubscribe (at) hswn.dk