Wednesday, 8 November 2017

Installing IBM DB2 on Linux using IBM Installation Manager - Fun and Games

I've installed DB2 a million (!) times over the past 17 years, since I joined what was then IBM Software Group.

However, I've almost always installed it using the DB2 installation binaries and response files.

For a long time now, it's been packaged with IBM BPM, and other products, and thus suitable to be installed using IBM Installation Manager (IIM).

So now I'm trying that ….

One thing of which to be aware; DB2 is typically only ever installed as root, which means ( to me, at least ) that BPM etc. is also installed as root - which feels wrong.

But that's a challenge for another day.

I've got a response file to install WAS, BPM, DB2 etc., and am driving IIM as root (!): -

/opt/ibm/InstallationManager/eclipse/tools/imcl -input installBPM86_DB2_root.rsp -acceptLicense

Alas this failed with: -

ERROR: Error during "install" phase:
  ERROR: Installation of DB2 Advanced Workgroup Server has failed. 
  Installation failure reason: A fatal error occurred during the installation.


Thankfully, IIM keeps logs, lots of logs.

In my (root) case, these are here: -

/var/ibm/InstallationManager/logs

e.g. 

ls -altrc /var/ibm/InstallationManager/logs

total 136
-rw-r--r--  1 root root 10400 Nov  8 15:11 log.xsl
-rw-r--r--  1 root root  2912 Nov  8 15:11 index.xsl
drwxr-xr-x  2 root root  4096 Nov  8 15:11 inputs
drwxr-xr-x  2 root root  4096 Nov  8 15:14 native
drwxr-xr-x 13 root root  4096 Nov  8 15:14 ..
-rw-r--r--  1 root root 82682 Nov  8 15:14 20171108_1511.xml
-rw-r--r--  1 root root   224 Nov  8 15:14 index.xml
drwxr-xr-x  4 root root  4096 Nov  8 15:14 .
-rw-r--r--  1 root root 13686 Nov  8 15:14 sample.properties

view /var/ibm/InstallationManager/logs/20171108_1511.xml 

<entry num='234' time='1510154080965' elapsed='03:28.24' level='ERROR' thread='Thread-425'>
 <logger>global</logger>
 <class>com.ibm.db2exp.exec.Install</class>
 <method>exec</method>
 <message>com.ibm.db2exp.exec.Install
Command: [Ljava.lang.String;@174464c6
Return code : 67
StdOut :   Aborting the current installation ...
  Run installation with the option "-f sysreq" parameter to force the installation.

StdErr : Requirement not matched for DB2 database "Server" . Version: "11.1.0.0".

Summary of prerequisites that are not met on the current system:

   DBT3514W  The db2prereqcheck utility failed to find the following 32-bit library file: "/lib/libpam.so*".


   Required minimum operating system distribution: "RHEL"; Version: "6"; Service pack: "7".
   Actual operating system distribution Version: "6"; Service pack: "6".


</message>
</entry>


which makes sense …

cat /etc/redhat-release 

Red Hat Enterprise Linux Server release 6.6 (Santiago)

To check my hypothesis, I "cheated" by editing the above: -

Red Hat Enterprise Linux Server release 6.7 (Santiago)

and now things install happily :-)

/opt/ibm/InstallationManager/eclipse/tools/imcl -input installBPM86_DB2_root.rsp -acceptLicense

Installed 8.5.5.12-WS-WASND-IFPI82630_8.5.5012.20170718_1447 to the /opt/ibm/WebSphere/AppServer directory.
Installed com.ibm.websphere.ND.v85_8.5.5012.20170627_1018 to the /opt/ibm/WebSphere/AppServer directory.
Installed com.ibm.bpm.ADV.v85_8.6.0.20170918_1207 to the /opt/ibm/WebSphere/AppServer directory.
Installed com.ibm.ws.DB2EXP.linuxia64_11.1.0.20170918_0944 to the /opt/ibm/WebSphere/AppServer directory.


/opt/ibm/WebSphere/AppServer/db2/bin/db2level

DB21085I  This instance or install (instance name, where applicable: 
"db2inst1") uses "64" bits and DB2 code release "SQL11010" with level 
identifier "0201010F".
Informational tokens are "DB2 v11.1.0.0", "s1606081100", "DYN1606081100AMD64", 
and Fix Pack "0".
Product is installed at "/opt/ibm/WebSphere/AppServer/db2".


Of course, when I do this properly, I will use a supported version of RHEL, rather than "hacking" the redhat-release file …..

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="{...