clientupdate - Xymon client update utility
clientupdate is part of the Xymon client. It is responsible for
updating an existing client installation from a central repository of
client packages stored on the Xymon server.
When the Xymon client sends a normal client report to the Xymon server,
the server responds with the section of the client-local.cfg(5) file
that is relevant to this client. Included in this may be a
"clientversion" value. The clientversion received from the server is
compared against the current clientversion installed on the client, as
determined by the contents of the $BBHOME/etc/clientversion.cfg file.
If the two versions are not identical, clientupdate is launched to
update the client installation.
Report the current clientversion.
Attempt to update the client to NEWVERSION by fetching this
version of the client software from the Xymon server.
Used internally during the update process, see OPERATION below.
Used internally during the update process. This option causes
the running clientupdate utility to delete itself - it is used
during the update to purge a temporary copy of the clientupdate
utility that is installed in $BBTMP.
USING CLIENTUPDATE IN HOBBIT
To manage updating clients without having to logon to each server, you
can use the clientupdate utility. This is how you setup the release of
a new client version.
Create the new client
Setup the new client $BBHOME directory, e.g. by copying an
existing client installation to an empty directory and modifying
it for your needs. It is a good idea to delete all files in the
tmp/ and logs/ directories, since there is no need to copy these
over to all of the clients. Pay attention to the etc/ files, and
make sure that they are suitable for the systems where you want
to deploy this new client. You can add files - e.g. extension
scripts in the ext/ directory - but the clientupdate utility
cannot delete or rename files.
Package the client
When your new client software is ready, create a tar-file of the
new client. All files in the tar archive must have filenames
relative to the clients’ $BBHOME (usually, ~xymon/client/).
Save the tarfile on the Xymon server in
~xymon/server/download/somefile.tar. Dont compress it. It is
recommended that you use some sort of operating-system and
version-numbering scheme for the filename, but you can choose
whatever filename suits you - the only requirement is that it
must end with ".tar". The part of the filename preceding ".tar"
is what Xymon will use as the "clientversion" ID.
Configure which hosts receive the new client
In the client-local.cfg(5) file, you must now setup a
clientversion:ID line where the ID matches the filename you used
for the tar-file. So if you have packaged the new client into
the file linux.v2.tar, then the corresponding entry in client-
local.cfg would be clientversion:linux.v2.
Wait for hobbitd to reload client-local.cfg
hobbitd will automatically reload the client-local.cfg file
after at most 10 minutes. If you want to force an immediate
reload, send a SIGHUP signal to the hobbitd process.
Wait for the client to update
The next time the client contacts the Xymon server to send the
client data, it will notice the new clientversion setting in
client-local.cfg, and will run clientupdate to install the new
client software. So when the client runs the next time, it will
use the new client software.
clientupdate runs in two steps:
The first step is when clientupdate is first invoked from the
hobbitclient.sh script with the "--re-exec" option. This step
copies the clientupdate program from $BBHOME/bin/ to a temporary
file in the $BBTMP directory. This is to avoid conflicts when
the update procedure installs a new version of the clientupdate
utility itself. Upon completion of this step, the clientupdate
utility automatically launches the next step by running the
program from the file in $BBTMP.
The second step downloads the new client software from the Xymon
server. The new software must be packed into a tar file, which
clientupdate then unpacks into the $BBHOME directory.
clientupdate uses several of the standard Xymon environment variables,
including BBHOME and BBTMP.
xymon(7), bb(1), client-local.cfg(5)