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](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](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 :

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://sametimeserver: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 .

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 {} .  
  1. 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