IBM Sanity Validation Tool for IBM Connections 4.5

A new and very neat IBM tool has been added to the IBM Collaboration Solutions Catalog in the last week or so:
[titled_box title = “The Sanity Validation Tool for IBM Connections 4.5”]The Sanity Validation Tool for IBM Connections 4.5 release was developed to help developers, system administrators, support engineers and eventually customers during their deployment of Connections. The tool was designed with the ability to run Pre-install, During and Post installation to verify a handful of common configuration requirements and settings. Refer to the Read Me file for list of System, Websphere, Database, IHS configuration settings the tool validates. The tool supports installation on Linux/DB2 LDAP.[/titled_box]
You can download by clicking through from the Catalog, or by going direct to the ‘Lotus Business Solutions IBM Download site‘, logging in with your IBM ID and then searching for ‘Sanity’ to find the download in the very long list of tools on that site (there’s all sorts of interesting stuff on that list, something to investigate on a rainy day!).  You then need to fill in the obligatory IBM survey (‘Select which best describes your plans to use this software’ etc.), agree to the license and then you get to download the 176KB zip file.

Unpacking the zip file gives a folder named ‘sanity as of 9 16 2013’ (so this code has obviously been kicking around inside IBM for a while now!). This folder contains the code to be installed on your Linux server, plus a rudimentary README.txt file:

Sanity Tool unzipped

This is the first I’ve seen of this tool, so these are my comments as I go.

  1. Put the ‘sanity’ folder from inside the unpacked zip file somewhere memorable on your Connections 4.5 server (I used /opt/IBM/sanity).
  2. Check you have Python 2.6.x installed by running ‘python’ as root, e.g.
    [root@myserver sanity]# python
    Python 2.6.6 (r266:84292, Aug 28 2012, 10:55:56)
    [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
    Type “help”, “copyright”, “credits” or “license” for more information.
  3. Make a backup and then edit conf.json using your favourite text editor, correcting these default values:

    [titled_box title = “Default configuration values”]”params”:{
    “connections.pathCon”:”/opt/IBM/Connections”,
    “connections.pathShare”:”/opt/IBM/Connections/data/shared”,
    “connections.pathConInst”:”/root/IBM_Connections_Install_Linux”,
    “db2.servers”:[
    {
    “name”:”activities”,
    “location”:”ictools2.swg.usma.ibm.com”,
    “username”:”db2inst1″,
    “password”:”password”,
    “path”:”/opt/ibm/db2/V10.1″,
    “dedicatedUser”:”lcuser”,
    “wizardsLocation”:”/Wizards”,
    “port”:”50000″
    }
    ],
    “driver.saveResults”:1,
    “driver.saveResultsPath”:”testResults.json”,
    “driver.quietDependencyCheck”:0,
    “IHS.pathIHS”:”/opt/IBM/HTTPServer”,
    “IHS.pathKey”:”/opt/IBM/HTTPServer/keys/ihskey.kdb”,
    “IHS.pathStash”:”/opt/IBM/HTTPServer/keys/ihskey.sth”,
    “ldap.java”:”/home/lcuser/jre1.7.0/bin/java”,
    “ldap.server”:”ilyavm.swg.usma.ibm.com”,
    “ldap.port”:”389″,
    “ldap.user”:”cn=root”,
    “ldap.password”:”lcsecret”,
    “ldap.base”:”o=renovations”,
    “ldap.filter”:”(&(objectClass=inetOrgPerson))”,
    “system.pathDB2″:”/opt/ibm/db2/V10.1”,
    “system.pathInstMan”:”/opt/IBM/InstallationManager”,
    “tdi.location”:”local”,
    “tdi.username”:”db2inst1″,
    “tdi.password”:”lcsecret”,
    “tdi.path”:”/opt/IBM/TDI/V7.1″,
    “websphere.pathWAS”:”/opt/IBM/WebSphere”,
    “websphere.server”:”ictools2.swg.usma.ibm.com”,
    “websphere.srvName”:”server1″,
    “websphere.profile”:”AppSrv01″,
    “websphere.cell”:”ictools2Cell01″,
    “wsadmin.user”:”Dmgr01″,
    “wsadmin.pass”:”passw0rd”[/titled_box]
    This is a little bit of a faff to get right initially, but once done can stay static for all future testing, and most likely can be used as a template for future installs of the tool on other systems.

  4. Run ‘python cmd_frontend.py’ as root (or as the user you use to run Websphere and Connections).  This kicks off a whole series of tests, e.g.:

    [titled_box title = “Running Sanity Check from the command line”][root@myserver sanity]# python cmd_frontend.py
    Welcome to the Sanity installation validation tool.
    Configuration File Location (default is conf.json):
    Loading config file at /opt/IBM/sanity/conf.json
    Loading test modules in the folder /opt/IBM/sanity/tests
    Loading test groups
    Verifying tests dependencies
    Starting tests…
    Starting test group: System Pre-install Check…
    Starting test: Determine if all required Linux libraries have been installed
    Searching for library packages…
    Found: compat-libstdc++-33.x86_64
    Found: compat-libstdc++-33.i686
    Found: compat-libstdc++-296-2.96
    Found: libcanberra-gtk2.i686
    Found: PackageKit-gtk-module.i686
    Found: gtk2.i686
    Found: libXtst.i686
    Test finished with result: LIBRARY ERROR: Missing library ‘libpam.so.0’Starting test: Determine if enough disk space exists to install Connections (114GB recommended)
    Getting disk space…
    Total free disk space: 14GB
    Test finished with result: Warning: Free space is less than 114GB; problems may occur when installing ConnectionsStarting test: Determine if enough memory exists to fulfill the recommended amount (8GB recommended)
    Getting total memory…
    Total memory: 7GB
    Test finished with result: Warning: Total memory is less than 8GB; problems may occur when running ConnectionsStarting test: Determine if permissions to required directories are set properly
    Checking if path exists: /opt/IBM/InstallationManager
    Path exists
    Checking access rights for /opt/IBM/InstallationManager…
    Checking admin permissions for /opt/IBM/InstallationManager…
    Admin permissions enabled
    Checking group permissions for /opt/IBM/InstallationManager…
    Test finished with result: PERMISSION ERROR: Nonroot user denied write permission for ‘Installation Manager’Starting test: Determine if uLimit is set to at least the recommended value 8200
    Getting uLimit…
    uLimit: 10240
    Total memory is greater than recommended amount (8200)
    Test successful
    Test finished with result: PASSFinished running test group: System Pre-install Check

    Starting test group: WebSphere Pre-install tests…
    Starting test: Determine if security is enabled
    Checking WebSphere for wsadmin.sh…
    Found wsadmin.sh
    Getting WebSphere security status…
    Test finished with result: SECURITY ERROR: Security is not enabled[/titled_box]This was run on a server that has been successfully running Connections 4.5 for a year or so.  As you can see from the snippet of output above, it has already picked out some things that can be improved.  The script took about 30 seconds to run in all.

  5. The tool can also be accessed via a web page which is rather cool.  Simply run ‘python web_frontend.py’:

    [titled_box title = “Enabling Sanity Check via a browser”][root@ssconnus sanity]# python web_frontend.py
    Starting Server
    Press ctrl+c to stop the server[/titled_box]
    And then access the Connections server on port 8000, e.g. http://connections.myorg.com:8000:

    Sanity Check via web browser

    This allows the administrator to add parameters to be applied to the test, and also to select the tests to be executed:

    Sanity via web - options

    Once the tests have been run, the output is displayed in the browser, and is then stored for review later.

As I mentioned above, getting the config file correct took a little while initially, but once this is done, the tool produces some excellent output and has already proved to be very useful.  I can imagine running it on all my servers (most Connections platforms I’ve worked on are Linux/DB2 so this fits the bill for me), and using it on a regular basis – particularly during upgrades and migrations.

Whilst this is a ‘USE AS IS’ tool and is not supported, I can imagine it becoming part of most Connections admin toolkits…  It only supports Connections 4.5 today, but should in theory work on Connections 5.0 as well, perhaps with a few minor tweaks to deal with the newer version of WAS involved. I haven’t had a chance to test this yet though.  It obviously isn’t supported on Windows, AIX or System i either.

I’m not sure who in IBM is responsible for the tool, but kudos to them!  I’d love to see it included in the default Connections install for Linux, then many of the parameters could be set automatically during the install.  Till then, download it and install ASAP.  Recommended!

Stuart McIntyre is a Senior Strategist at Fostering Community Limited. He curates a number of product-focused news sites, is a lapsed podcaster, founded the Social Connections user group and regularly speaks at conferences and events. This blog represents his own slightly-eccentric and usually-controversial opinions!