Tips & tricks for installing and running ICS products

Installation Sametime 9 on Linux : the Meeting Server (updated)

Tom Bosmans  14 January 2014 10:43:08

Non root installation of Sametime 9 Meeting Server



In the wiki, it states that you need to install using root.  I do not know why this is, since both Installation Manager and WebSphere Application Server can be installed as non-root .

Prepare


Warning  :  I'm using CentOS 6.5 - which is not supported by IBM.  This means none of this is supported as such .

To be able to use scp and ssh, install openssh-clients as well on the server:

yum install openssh-clients
yum install xorg-x11-xauth
yum install xorg-x11-apps
yum install xorg-x11-utils
yum install xorg-x11-font*
yum install wget
yum install libcanberra-gtk2


To install addional fonts  (for the conversion server), you need some prerequisites.  Noteably,  you need the RPMForge repository :
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge


wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.3-1.el6.rf.*.rpm
rpm -i rpmforge-release-0.5.3-1.el6.rf.*.rpm

yum install cabextract ttmkfdir rpm-build
yum install ghostscript
yum install compat-libstdc++-33.x86_64


Disable SELinux (or set it to permissive) :

vi /etc/selinux/config


Make sure you installed :
  •  DB2 V10.1 (as per this blog post : install-db2-v10.1.htm
  • LDAP server : TDS installation
  • System console : Sametime System console
  • Configured security in System Console : Configure LDAP

    Create the user you want to run the environment with .

    [root@stssc ~]# groupadd -r was

    [root@stssc ~]# useradd -r -g was -m was

    [root@stssc ~]# echo passw0rd | passwd was --stdin

    Changing password for user was.

    passwd: all authentication tokens updated successfully.

Install Installation Manager

Extract the installer to a directory of your choice an go to that directory.

This is an installation as a non-administrator user, so as the was user we created earlier.  In addition, this is the console installation.


[root@stssc]$ su - was
[was@stssc ~]$ cd /mnt/hgfs/hostroot/local/Downloads/IBM/Sametime/90/InstalMgr1.6.2_LNX_X86_64_WAS_8.5.5/
[was@stssc InstalMgr1.6.2_LNX_X86_64_WAS_8.5.5]$ ./userinstc -acceptLicense

Installed com.ibm.cic.agent_1.6.2000.20130301_2248 to the /home/was/IBM/InstallationManager/eclipse directory.



Log files are in the user's home directory, in this case :
/home/was/var/ibm/InstallationManager/logs


Start Installation manager to make sure it works :

[was@stssc ~]$ cd /home/was/IBM/InstallationManager/eclipse/
[was@stssc eclipse]$ ./IBMIM



Install WAS ND 8.5.5


Extract the installation files, and combine into a single directory.  This means moving the disk2 and disk3 directories into the first directory extracted.

Prepare a responsefile


This is the responsefile for a non-root installation :
WASv85.nd.install.xml

It should contain your repository location, and the features to install.  The rest is optional.

You need to install the full WAS profile, with the 64 bit SDK and ejbdeploy.  Do not select liberty.

Prepare the installation directory

Create the directory /opt/IBM/ that is writeable as the user "was".  As root :


[root@stssc opt]# mkdir /opt/IBM
[root@stssc opt]# chown was:was /opt/IBM

Install WebSphere 8.5.5


Run the installer with reference to the response file (as the user "was")
su - was
cd /home/was/IBM/InstallationManager/eclipse
./IBMIM --launcher.ini silent-install.ini -input /mnt/hgfs/hostroot/local/Doc/INSTALL/sametime9/WASv85.nd.install.xml -log /tmp/wasinstall.log -acceptLicense -showVerboseProgress

or, with a keyring for authentication :

su - was
[was@stssc eclipse]$ ./IBMIM --launcher.ini silent-install.ini -input /mnt/hgfs/hostroot/local/Doc/INSTALL/sametime9/WASv85.nd.install.xml -log /tmp/wasinstall.log -acceptLicense -showVerboseProgress -keyring /home/was/imkeyring.kyr -password passw0rd

Verify the log files in the Installation Manager's log directory for errors.

Install the Sametime Meeting Server


Install the Hot Fix 1 version of the Sametime Meeting Server without installing the version 9.0 server first. The updated version of the Sametime System Meeting Server installs with the same procedure as the version 9.0 server, except that you will point to the repository provided with the Hot Fix 1 package.

Extract the Sametime Meeting Server file from the 9.0.1 hotfix (SametimeMeetingServer.zip)

Create Meeting database


On the DB2® server, log in as the DB2 administrator (db2inst1) .

Go to the DatabaseScripts/MeetingServer directory in the extracted directory and run the createDb scripts :


[root@stssc ~]# su - db2inst1
[db2inst1@stssc ~]$ cd /mnt/hgfs/hostroot/local/Downloads/IBM/Sametime/90_fixes/SametimeMeetingServer/DatabaseScripts/MeetingServer/
[db2inst1@stssc MeetingServer]$ ./createMeetingDb.sh STMS db2inst1
Processing...
..

DB20000I  The SQL DISCONNECT command completed successfully.

Note that you may need to make the createMeetingDb.sh script executable first !

List the databases.  You should have at least 2 (the System Console database and the newly created Meetings database).

[db2inst1@stssc MeetingServer]$ db2 list db directory

System Database Directory

Number of entries in the directory = 2

Database 1 entry:

Database alias                       = STSC
Database name                        = STSC
Local database directory             = /home/db2inst1
Database release level               = f.00
Comment                              =
Directory entry type                 = Indirect
Catalog database partition number    = 0
Alternate server hostname            =
Alternate server port number         =

Database 2 entry:

Database alias                       = STMS
Database name                        = STMS
Local database directory             = /home/db2inst1
Database release level               = f.00
Comment                              =
Directory entry type                 = Indirect
Catalog database partition number    = 0
Alternate server hostname            =
Alternate server port number         =


Log out of the database server.

Connect the System Console to the Meeting database

The Sametime system console needs to know about the newly created database.

Open the Sametime System Console , on https://:8701/ibm/console

Log in with the WebSphere Administrator, in my case named dmgrwasadmin (in the installation of the System Console Installation of the Sametime System Console)

Navigate to Sametime System Console/Sametime Prerequisites/Connect to Database

Select "Add"
Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
Enter the details of the DB2 database you created earlier.
Click "Finish"
Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
You should now have 2 configured databases .

Generate passwords


You need to export the variable below , because we're at a non-standard location with our installation manager.
[was@stssc generateEncodedPassword]$ export IM_INSTALL_LOCATION=/home/was/IBM/InstallationManager
[was@stssc generateEncodedPassword]$ ./generateEncodedPassword.sh passw0rd


Prepare responsefile

This is my responsefile to install a Meeting Server using the Sametime System Console , for a non-root install :

IMS_ssc.rsp

The repository points to the extracted System Console files , from the 9.0.1 Hotfix.

Create deployment plan

Open the Sametime System Console , on https://:8701/ibm/console

Log in with the WebSphere Administrator, in my case named dmgrwasadmin (in the installation of the System Console Installation of the Sametime System Console)

Navigate to Sametime System Console/Sametime Guided Activities/Install Sametime Meeting Server

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)

Select "New Deployment Plan"

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
Name it (must match with what you put in the responsefile - in this case STMeetings1 )

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)

Select the version

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
Select all roles, EXCEPT the Recording Renderer (if you're on linux).

Important Note : the Recording Renderer is not available on Linux , so you can install it, but it will not start.  You'll see messages like this :


[1/28/14 9:41:18:282 CET] 00000080 RenderManager I   init
[1/28/14 9:41:18:282 CET] 00000080 RenderManager I   osName[Linux]
[1/28/14 9:41:18:283 CET] 00000080 RenderManager I   Render server not started...windows only.

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)

Select the type.  I need a "Primary Node" - this will put the Meeting server into the Cell I already have (the Cell created when installing the Sametime system console)

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)

Select the Deployment Manager

Image:Installation Sametime 9 on Linux : the Meeting Server (updated)

Enter the hostname of your system where you want the Meeting server installed.  As userid, use something that's unique.  This userid will never be actually used since the Meeting server will be federated to the Cell during installation and you will manage it from the SSC.
Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
Select the STMS database.
Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
Set all hostnames to the hostname of the meeting server.
Audio Recorder IP with outbound connectivity to TURN/MCU:  the ip address of the Meeting server .

For the username for the Capture server you need to use the WAS administrator, in this case dmgrwasadmin.

You can use other users, see this link : sametime-9-meeting-server-recording-on-linux.htm .


Change the directories to Linux directories.  These need to exist on the machine !  We'll create them in the install step.
Image:Installation Sametime 9 on Linux : the Meeting Server (updated)
This is the summary.  The Profile name still can't be modified nor can the Node name.


Install

Create the directories defined in the deployment plan , and the default directory for sharing files.  These need to be owned by the user "was"

mkdir /opt/IBM/STCapture

mkdir /opt/IBM/STRender

mkdir /opt/docshare

Install the Meeting server using these commands :


[was@stssc opt]$ cd /home/was/IBM/InstallationManager/eclipse/tools
[was@stmeetings tools]$ ./imcl -acceptLicense -showProgress -input /mnt/hgfs/hostroot/local/Doc/INSTALL/sametime9/meetings/IMS_ssc.rsp -log /tmp/meetings.log
         25%                50%                75%                100%
------------------|------------------|------------------|------------------|
.............................job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
entered verifyWASversion
size :18
pre upgrade check
job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
printing
job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
relativeUrlFormat : /console/deployment/depNamelist?DepName=param0&ProductType=param1
relativeUrlFormat : /console/deployment?DepId=param0
relativeUrlFormat : /console/deployment?DepId=param0
job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
.job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
entered verifyWASversion
size :18
pre upgrade check
job InstallJob in IBM® Sametime® Server Platform; com.ibm.lotus.sametime.meetingserver 9.0.0.20131109_0552 features: CEMain,nossc,meeting,ssc
......................................relativeUrlFormat : /console/deployment/getAnonTokenSecret
Verify hostname or port entered.
true
before getting connection helper
Jan 14, 2014 4:41:23 PM null null
WARNING: ADMC0046W
Jan 14, 2014 4:41:23 PM null null
WARNING: Could not find tmx4jTransform.jar in null/etc/tmx4jTransform.jar - Interoperability to older versions of WebSphere is disabled
Jan 14, 2014 4:41:24 PM null null
INFO: ssl.disable.url.hostname.verification.CWPKI0027I
Jan 14, 2014 4:41:24 PM null null
INFO: Client code attempting to load security configuration
Jan 14, 2014 4:41:24 PM null null
INFO: Client code attempting to load security configuration
after getting connection helper
in isRemoteMbeanAvailable
getAdminClient
objectSet
Jan 14, 2014 4:41:33 PM com.ibm.sametime.console.admin.plugins.wsadmin.ClusterConfigImpl isRemoteServerTimeSynched
INFO: Comparing system clocks...
Jan 14, 2014 4:41:33 PM com.ibm.sametime.console.admin.plugins.wsadmin.ClusterConfigImpl isRemoteServerTimeSynched
INFO: System time on deployment manager: 1389714093457
Jan 14, 2014 4:41:33 PM com.ibm.sametime.console.admin.plugins.wsadmin.ClusterConfigImpl isRemoteServerTimeSynched
INFO: System time on node: 1389714093514
relativeUrlFormat : /console/deployment?DepId=param0
SSC is avaialble for Federation.
Federation lock acquired on SSC Dmgr.
........
Installed com.ibm.lotus.sametime.meetingserver_9.0.0.20131109_0552 to the /opt/IBM/SametimeServer directory.

You can login it the meeting server now

http://stmeetings.tb.issc.ibm.com:9080/stmeetings/

However, at this point, document conversion will not work yet.

Configure the meeting server

Conversion

To be able to have the conversion server to use MS fonts, you can install additional Core fonts (the Microsoft core fonts)
http://corefonts.sourceforge.net/

as root :


wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
rpmbuild -bb msttcorefonts-2.5-1.spec
rpm -ivh /root/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm

fc-cache -f -v
fc-list

Note that the fontconfig package is required to run fc-cache , but it should be installed already as a dependency.
Copy the fonts to the stellent/fonts directory

cd /opt/IBM/WAS/STMeetingsServer/stellent/fonts
cp /usr/share/fonts/msttcorefonts/*.ttf .
chmod 755 *
chown was:was *


Make the following changes on the Sametime® Meeting Server that you installed with the Document Conversion configuration role.
1.        If you have legally licensed true-type fonts available, copy them to /opt/IBM/WebSphere/STMeetingsServer/stellent/fonts. Make sure that the extensions for the fonts are lowercase (*.ttf) and each font has the correct permission level (755).

I used this command to copy all font files available on the system , to the stellent/fonts directory.


cd /opt/IBM/WAS/STMeetingsServer/stellent/fonts
find / -name *.ttf | xargs -n1 -i cp {} .


2.        Set the following environment variables.  You need to make sure these are executed when the server starts.  So there's 2 places where you can set this :

  • inside the start script for the WAS server (which we haven't created yet !)
  • in 1 of the .profile files that get executed on login of the "was" user eg. the .bash_profile  or even /etc/profile

    export PATH=$PATH:/opt/IBM/WAS/STMeetingsServer/stellent
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/IBM/WAS/STMeetingsServer/stellent
    export GDFONTPATH=/opt/IBM/WAS/STMeetingsServer/stellent/fonts

for instance, as user was (note the single quotes, to avoid that the parameters get expanded while writing them into the profile file) :

echo "#=====PROFILE SETTINGS FOR WAS====" >>  ~/.bash_profile

echo 'export PATH=$PATH:/opt/IBM/WAS/STMeetingsServer/stellent' >> ~/.bash_profile
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/opt/IBM/WAS/STMeetingsServer/stellent'  >> ~/.bash_profile
echo 'export GDFONTPATH=/opt/IBM/WAS/STMeetingsServer/stellent/fonts'  >> ~/.bash_profile

echo "#=====END====" >>  ~/.bash_profile



To test this, log out as the user was and log in again, and verify you have the variables GDFONTPATH and LD_LIBRARY_PATH :

su - was
echo $GDFONTPATH
/opt/IBM/WAS/STMeetingsServer/stellent/fonts
echo $LD_LIBRARY_PATH
:/opt/IBM/WAS/STMeetingsServer/stellent


Note:
The LD_LIBRARY_PATH variable can be overwritten by other scripts. If you are able to convert image files and not other documents (.txt, .doc, .ppt, etc.), then this might be the cause. Type 'set' in a terminal to see if this variable is still set and has the correct value.

I've found in some cases that LD_LIBRARY_PATH should contain the path to libstdc++.so.5 (/usr/lib), which isn't mentioned in the wiki.

Note:
The GDFONTPATH variable must not contain a ':' in the beginning. The only value that should be set here is the path to the fonts. Do not append anything before or after.

Restart the Meeting server.

Better PDF conversion

Set , through the SSC , following parameters in the Meeting server.


docshare.pdf.ghostscript  true
docshare.filebase.io /tmp/docshare

No need to restart the Meeting server, just wait a bit for the change to sync to the node.

Test conversion (ExportTest.sh)


The conversion is done by the exporter (in the binary path) .  The ExportTest.sh script is a wrapper to the exporter binary, and uses the default.cfg configuration file that Sametime uses as well.

If Sametime does not want to convert your images, this is a good place to start.

You can manually run the exporter from the commandline, to verify it works , using a file of your choice.  If you upload a file to share through the Sametime Meetings interface, this is stored in the /opt/docshare directory (which we created earlier) . The setupCmdLine.sh file needs to be sourced, so you have a correct environment to run everything.
This  is what you should have as a result.


[was@stmeetings stellent]$ cd /opt/IBM/WAS/AppServer/profiles/stmeetingSTMPNProfile1/bin/
[was@stmeetings bin]$ . ./setupCmdLine.sh
[was@stmeetings bin]$ cd /opt/IBM/WAS/STMeetingsServer/stellent
[was@stmeetings stellent]$ ./ExportTest.sh /opt/docshare/70633596-5fe5-45e7-9685-ada806d7217c1389961932578/1389961932578.odp /tmp/output default.cfg
java -classpath ExportTest.jar:Export.jar ExportTest /opt/docshare/70633596-5fe5-45e7-9685-ada806d7217c1389961932578/1389961932578.odp /tmp/output default.cfg
Input Path: /opt/docshare/70633596-5fe5-45e7-9685-ada806d7217c1389961932578/1389961932578.odp Output Path: /tmp/output Output ID: FI_TIFF
Conversion Successful!

Test Conversion using exporter

Alternatively, you can call the binary directly :

[was@stmeetings bin]$ cd /opt/IBM/WAS/STMeetingsServer/stellent
[was@stmeetings stellent]$ exporter inputpath=/opt/docshare/70633596-5fe5-45e7-9685-ada806d7217c1389961932578/1389961932578.odp outputpath=/tmp/output.tiff outputid=FI_TIFF
Export complete.
[was@stmeetings stellent]$ file /tmp/output.tiff
/tmp/output.txt: TIFF image data, little-endian


Fix any issues , if this does not work :-D