clientupdate - Xymon client update utility
clientupdate [options]
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.
xymon(7),
xymon(1),
client-local.cfg(5)