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
$XYMONHOME/etc/clientversion.cfg file. If the two versions are not
identical, clientupdate is launched to update the client installation.
- --level
- Report the current clientversion.
- --update=NEWVERSION
- Attempt to update the client to NEWVERSION by fetching this version of the
client software from the Xymon server.
- --reexec
- Used internally during the update process, see OPERATION below.
- --remove-self
- 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
$XYMONTMP.
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 $XYMONHOME 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 file names relative to the
clients' $XYMONHOME (usually, ~xymon/client/). Save the tar file on the
Xymon server in ~xymon/server/download/somefile.tar. Don't 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 xymond to reload
client-local.cfg
- xymond 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 xymond 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:
- Re-exec step
- The first step is when clientupdate is first invoked from the
xymonclient.sh script with the "--re-exec" option. This step
copies the clientupdate program from $XYMONHOME/bin/ to a temporary file
in the $XYMONTMP 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 $XYMONTMP.
- Update step
- 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 $XYMONHOME directory.
clientupdate uses several of the standard Xymon environment
variables, including XYMONHOME and XYMONTMP.