Pushing NetWorker Software Client Upgrades from your local NetWorker Software Repository

Today EMC announced the GA release of NetWorker 8.1. For every backup administrator that means we need to start planning software upgrades!

Fortunately, NetWorker includes the ability to push software updates to hosts from the NetWorker server.

To setup this feature the software you would like to distribute must first be added to the NetWorker server software repository. This can be done via the Software Administration GUI available from NetWorker Administrator or the command line. For the purpose of this demonstration we will use the nsrpush command from the NetWorker server but either way will work.

This particular NetWorker server runs on CentOS which means we need to use a Windows system to help with adding the Windows software distribution to the repository. This system needs to be running a NetWorker Client and be accessible from the NetWorker server. It is used one-time to ensures Windows file schematics are preserved as the repository is populated on the UNIX NetWorker server. The inverse applies if we were using a Windows NetWorker server.

First extract the Windows software distribution to a directory on the UNIX NetWorker server and the Windows cross-platform client. In this case I have used /nw on UNIX and c:\nw81_win_x64\win_x64 on Windows. Then tell NetWorker to add the software to the repository by specifying the location on the UNIX server and Windows cross-platform client (server.mlab.local).

Here is an example below:

[root@nws nw]# nsrpush -a -p NetWorker -v 8.1.0.1 -P win_x64 -W -m /nw/win_x64 -c server.mlab.local -C 'C:\\nw81_win_x64\win_x64'
Hostname and mount point recorded.
Success adding product from:
/nw/win_x64

Add to repository status: succeeded

For UNIX software distributions (e.g. Linux, Solaris, AIX, HPUX) there is no need for a cross-platform client. We extract the bundle to the UNIX NetWorker server and add to the software repository.

Here is how its done for the Linux software distribution.

[root@nws nw]# nsrpush -a -p NetWorker -v 8.1.0.1 -P linux_x86_64 -U -m /nw/linux_x86_64/
Success adding product from:
/nw/linux_x86_64

Add to repository status: succeeded

For comparison’s sake we have also populate the Solaris x86 distribution.

[root@nws nw]# nsrpush -a -U -p NetWorker -P solaris_x86 -v 8.1.0.1 -m /nw/solaris_x86
Success adding product from:
/nw/solaris_x86

Add to repository status: succeeded

Now we can query the software repository to see what’s available:

[root@nws nw]# nsrpush -l

Products in the repository

================================

NetWorker 8.1.0.1
linux_x86_64
Japanese Language Pack
Chinese Language Pack
Korean Language Pack
Management Console
Client
Man Pages
Storage Node
License Manager
Server
French Language Pack
solaris_x86
Korean Language Pack
Chinese Language Pack
Japanese Language Pack
French Language Pack
Man Pages
Client
win_x64
Server
License Manager
Language Packs
English Language Pack
French Language Pack
Japanese Language Pack
Korean Language Pack
Chinese Language Pack
Client
Management Console
Storage Node

Before we can update our clients we need to perform an inventory of them first. Let’s run it across all clients.

In this case we have 3 clients with nws.mlab.local playing the role of the NetWorker console, server and storage node.

[root@nws nw]# nsrpush -i -all
Starting Inventory Operation on selected clients
Creating client type job for client maral-laptop.mlab.local.
Copying inventory scripts to client maral-laptop.mlab.local.
Successfully copied inventory scripts to client maral-laptop.mlab.local.
Starting inventory of client maral-laptop.mlab.local.
Successfully ran inventory scripts on client maral-laptop.mlab.local.
Cleaning up client maral-laptop.mlab.local.
Successfully cleaned up client maral-laptop.mlab.local.
Creating client type job for client nws.mlab.local.
Copying inventory scripts to client nws.mlab.local.
Successfully copied inventory scripts to client nws.mlab.local.
Starting inventory of client nws.mlab.local.
Successfully ran inventory scripts on client nws.mlab.local.
Cleaning up client nws.mlab.local.
Successfully cleaned up client nws.mlab.local.
Creating client type job for client server.mlab.local.
Copying inventory scripts to client server.mlab.local.
Successfully copied inventory scripts to client server.mlab.local.
Starting inventory of client server.mlab.local.
Successfully ran inventory scripts on client server.mlab.local.
Cleaning up client server.mlab.local.
Successfully cleaned up client server.mlab.local.

Now lets query our hosts to see what version of NetWorker and packages are installed.

[root@nws nw]# nsrpush -s -all

server.mlab.local win_x64
NetWorker 8.0.2.0
Language Packs
English Language Pack
Client

nws.mlab.local linux_x86_64
NetWorker 8.1.0.1
Storage Node
Client
Server
Man Pages
Management Console

maral-laptop.mlab.local win_x64
NetWorker 8.0.2.0
Language Packs
Client
English Language Pack

No surprise there. Our NetWorker server is already running 8.1.0.1 as it was upgraded using the NetWorker server upgrade process (i.e. rpm).

Now we are in a position to upgrade all hosts or target specific hosts.

Lets for the moment upgrade our desktop server (server.mlab.local).

[root@nws nw]# nsrpush -u -p NetWorker -v 8.1.0.1 server.mlab.local
Starting upgrade operation on selected clients.
Creating client type job for client server.mlab.local.
Copying upgrade scripts to client server.mlab.local.
Successfully copied upgrade scripts to client server.mlab.local.
Checking free space on the temporaty path for client server.mlab.local.
Successfully issued a space check command to client server.mlab.local.
Copying upgrade packages to client server.mlab.local.
Successfully copied upgrade packages to client server.mlab.local.
Starting upgrade of client server.mlab.local.
Successfully issued an upgrade command to client server.mlab.local.
Waiting for upgrade status for client server.mlab.local.
Successfully retrieved and processed the package upgrade status data for client server.mlab.local
Starting cleanup phase on client server.mlab.local.
Cleaning up client server.mlab.local.
Successfully issued the cleanup command to client server.mlab.local.

Upgrade status: succeeded

And its done. That took about a minute. To verify we can query the client again.

[root@nws nw]# nsrpush -s server.mlab.local

 server.mlab.local  win_x64
     NetWorker 8.1.0.1
                English Language Pack
                Language Packs
                Client

All done remotely from the NetWorker server command prompt. Just the way I like it.

The NetWorker software distribution feature is quite simple to use. Suggest you give it a try if you are not using it already.

Leave a Comment