Installation Sametime 9 on Linux : the Meeting Server (updated)
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 :
- 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://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”
Enter the details of the DB2 database you created earlier.
Click “Finish”
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 :
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
Select “New Deployment Plan”
Name it (must match with what you put in the responsefile - in this case STMeetings1 )
Select the version
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.
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)
Select the Deployment Manager
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.
Select the STMS database.
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.
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.
- 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 {} .
- 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