Thursday, 4 October 2012

Using the Packaging Utility to create a repository for IBM Installation Manager

In this post, I'm starting to bring things together. I've previously described how the Packaging Utility: -

The IBM Packaging Utility is a publicly available packaging tool that combines the repositories of different IBM software packages into a common central repository. You can use the utility to move software packages between repositories or delete software packages from central repositories. The utility is often used to copy software package repositories from various sources (for example, CDs, DVDs, Internet, and so on) onto internal servers. In addition, you can also copy the latest fix packs and fixes of software packages onto the internal servers so not everyone in the enterprise needs to download it. By pointing the IBM Installation Manager to the internal servers, you can perform the installation of software from a common source.

can be downloaded and installed: -


in order that IBM Installation Manager can then be used to install WAS 8.5, as mentioned here - Silently installing WebSphere Application Server Network Deployment 8.5 - no GUIs here.

The thing that I'm specifically trying to do is to create a repository, containing ONLY the bits of WAS 8.5 that I actually need ( in my example, I'm going to only include the x86-32 Linux binaries ).

This repository will then be accessible by the IBM Installation Manager via FTP, to support a remote installation on one box from another.

To start with, I have the original base code available to me, via FTP just to prove the point. The repository is: -


( for the record, I am using the Very Secure FTP Daemon ( VS-FTPD ) to serve FTP requests from my Red Hat Enterprise Linux )

Having previously installed the Packaging Utility, I then use the PU's command line tool ( PUCL ).

Query the content of the FTP repository

$ /opt/IBM/PackagingUtility/PUCL -sVP listAvailablePackages -repositories ftp://hayd@was85/mnt/hgfs/WAS85/repository.config

Opening repositories.
Opening repository ftp://hayd@was85/mnt/hgfs/WAS85.
Searching for packages.
Collecting all offerings or updates in repository ftp://hayd@was85/mnt/hgfs/WAS85.
com.ibm.websphere.ND.v85_8.5.0.20120501_1108

Create a new copy of the repository ( on local disk - /root/WAS85Slim ), but ONLY containing the x86-32 Linux binaries

/opt/IBM/PackagingUtility/PUCL copy com.ibm.websphere.ND.v85_8.5.0.20120501_1108 -repositories ftp://hayd@was85/mnt/hgfs/WAS85/repository.config -platform os=linux,arch=x86 -sVP -target ~/WAS85Slim/ -acceptLicense

Opening repositories.
Opening repository ftp://hayd@was85/mnt/hgfs/WAS85.
Preparing copy operation.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108. Getting file names from /root/WAS85Slim/.
Getting packages from /root/WAS85Slim/.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108. Getting file names from /root/WAS85Slim/.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108.
Searching for package or fix com.ibm.websphere.ND.v85_8.5.0.20120501_1108. Getting file names from /root/WAS85Slim/.
Getting fixes from /root/WAS85Slim/.
...

...
Processing com.ibm.websphere.WAS.embed_8.5.0.20120501_1108.su.
Processing com.ibm.WVE.was.nls_8.5.0.20120430_2224.su.
Processing com.ibm.websphere.sca_8.5.0.20120501_1108.su.
Processing com.ibm.was.nd_8.5.0.20120501_1108.assembly.
Getting file names from com.ibm.websphere.ND.v85_8.5.0.20120501_1108.offering.
Getting shareable unit fragments from com.ibm.websphere.ND.v85_8.5.0.20120501_1108.offering.
Getting file names from /root/WAS85Slim/.
Getting packages from /root/WAS85Slim/.
Getting fixes from /root/WAS85Slim/.
The operation completed successfully.


I can then configure IBM Installation Manager to use this new FTP-based repository: -


*CAVEAT* Unsupported, your mileage may vary

Now I'll add one point: -

Initially, I wanted to see whether I could skip the Packaging Utility step, and have Installation Manager pull the "original" files ( as downloaded from Passport Advantage ) directly.

These files are located in /mnt/hgfs/WAS85.

Having shared this via FTP, I could add the repository into IIM: -


*BUT* I found that IIM failed to load/install from the repository, even though it could connect OK.

When I tried using Packaging Utility in GUI mode, I saw: -

Composite repository "ftp://hayd@was85/mnt/hgfs/WAS85" could not access the referenced repository "ftp://hayd@was85/mnt/hgfs/WAS85/disk1".

against the same repository.

I "cheated" by editing the file: -

/mnt/hgfs/WAS85/repository.config 

and changing: -

repository.url.disk1=./disk1

to: -

repository.url.disk1=/mnt/hgfs/WAS85/disk1

In other words, I'm using an absolute rather than relative URL.

However, it's my view that this should NOT be necessary. Looking at the documentation thus far, it's my belief that one should always use Packaging Utility to create the repository ( whether FTP or HTTP or shared file system ).

In short, use PU to create a repository, regardless of how it's going to be shared, before using IIM to install.

I suspect that this is the supported approach.

*CAVEAT* Unsupported, your mileage may vary

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...