CLIENTUPDATE(1)

NAME
clientupdate - Hobbit client update utility

SYNOPSIS
clientupdate [options]

DESCRIPTION
clientupdate is part of the Hobbit client. It is responsible for updating an existing client installation from a central repository of client packages stored on the Hobbit server. When the Hobbit client sends a normal client report to the Hobbit 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.

OPTIONS

--level
    Report the current clientversion.

--update=NEWVERSION
    Attempt to update the client to NEWVERSION by fetching this version of the client software from the Hobbit 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 $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, ~hobbit/client/). Save the tarfile on the Hobbit server in ~hobbit/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 Hobbit 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 Hobbit 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.

OPERATION
clientupdate runs in two steps:

Re-exec step
    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.

Update step
    The second step downloads the new client software from the Hobbit server. The new software must be packed into a tar file, which clientupdate then unpacks into the $BBHOME directory.

ENVIRONMENT VARIABLES
clientupdate uses several of the standard Hobbit environment variables, including BBHOME and BBTMP.

SEE ALSO
hobbit(7), bb(1), client-local.cfg(5)