Table of Contents
Documented here are steps followed to build the production node for caBig applications, caArray, Labkey, and caTissue in the production blades in the Rust building. Before handing over to the production node, we first installed and secured these applications on a VM on devil machine in the Advanced Technologies lab.
Installing the VM on Devil
- The VM, cabig02-test.lab.ac.uab.edu, was installed with CentOS release 5.3 (Final).
- The memory and HardDisk space allocated were 3168MB and 40GB respectively.
- The Hostname was mentioned manually.
- The software during the installation were the default that came with CentOS-5.3, did not customize during this phase. All the customizations were done after installing OS with yum
- The user accounts on cabig02-test
$ groupadd lsd $ useradd -g lsd -m --password <passwd> -c "caBig Array Data Management System" caarray $ useradd -g lsd -m --password <passwd> -c "caBig Grid Infrastructure" cagrid $ useradd -g lsd -m --password <passwd> -c "caBig Grid Infrastructure" catissue $ useradd -g lsd -m --password <passwd> -c "Biomed Research Data Mngmt Application" labkey $ useradd -g lsd -m --password <passwd> -c "caBig User Provisioning Tool" upt
- All the required source files, the caBig applications, Jboss, Java in *.tar.gz/*.zip were placed in /opt/get-apps
- Each user account has a basic directory structure containing apps, src, and dist directories.
- /home/<caBig-app>/apps usually is the place for Jboss
- /home/<caBig-app>/src is where the application installer are located
- /home/<caBig-app>/dist any application-specific distribution files
Java
CentOS-5.3 comes with deafult Java-1.4.2. Java-1.5 is required by caBig applications. So, was installed at /usr/java by downloading rpms from sun. JAVA_HOME was set in /etc/profile.d/java.sh
$ cd /opt/get-apps/java $ wget http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-1_5_0_17-linux-i586-rpm.bin?BundledLineItemUUID=DaFIBe.oAOgAAAEh8q5wfhw5&OrderID=0V9IBe.opbAAAAEh1a5wfhw5&ProductID=UEdIBe.omzcAAAEdklhGb7Xo&FileName=/jdk-1_5_0_17-linux-i586-rpm.bin $ ./jdk-1_5_0_17-linux-i586-rpm.bin $ cd /etc/profile.d cat > java.sh <<EOF export JAVA_HOME=/usr/java/jdk1.5.0_17 export PATH=$JAVA_HOME/bin:$PATH EOF
Ant
- Jboss-4.0.4 and Jboss-4.0.5 require ant-1.6.5 version to be built and caBig applications rely on ant-1.7. CentOS-5.3 comes with ant-1.6.5 and ant-1.7.0 was installed in /opt. So, when installing caBig applications, ANT_HOME was exported explicitly and PATH env var is augmented with the /opt/apache-ant-1.7.0/bin path before ant-1.6.5/bin path.
ant-1.6.5 installed system-wide through yum $ yum install ant* ant-1.7.0 installed in /opt by downloading binary $ cd /opt $ wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.zip $ unzip apache-ant-1.7.0-bin.zip
MySQL
- Install MySQL-5.0.45 (default from CentOS repositories)
$ yum install mysql.i386 mysql-bench.i386 mysql-devel.i386 mysql-server.i386 mysql-test.i386
- Change mysqld configuration scripts, /etc/my.cnf and /etc/init.d/mysqld, as given in caArray-220-install guide
- Start mysql, change root password, create databases, mysql user accounts for UPT, caArray, and caTissueSuite.
$ service mysqld start $ mysql mysql>UPDATE mysql.user SET Password=PASSWORD('NewPass') WHERE User='root'; mysql>FLUSH PRIVILEGES; mysql>exit $ mysqladmin -u root -p create csmupt $ mysqladmin -u root -p create caarray $ mysqladmin -u root -p create catissue $ mysql -u root -p mysql>CREATE USER 'upt-superadmin'@'localhost' IDENTIFIED BY 'somepassword'; mysql>GRANT ALL PRIVILEGES ON csmupt.* to 'upt-superadmin'@'localhost'; mysql>CREATE USER 'caarray-admin'@'localhost' IDENTIFIED BY 'somepassword'; mysql>GRANT ALL PRIVILEGES ON caarray.* to 'caarray-admin'@'localhost'; mysql>CREATE USER 'catissue-admin'@'localhost' IDENTIFIED BY 'somepassword'; mysql>GRANT ALL PRIVILEGES ON catissue.* TO 'catissue-admin'@'localhost';
UPT
- Installing Jboss-4.0.5 at /home/upt/apps and CSM_UPT_4_1_Release.zip at /home/upt/src
$ cd ~/apps $ unzip /opt/get-apps/jboss/jboss-4.0.5.GA.zip $ cd ~/src $ unzip /opt/get-apps/upt/CSM_UPT_4_1_Release.zip
- Built UPT-41 according to the installation steps. The install steps are in the CSM-41 Programmer's Guide, Chapter3.
- Changed the port numbers in /home/upt/apps/jboss-4.0.5.GA/server/default/deploy/jbossweb-tomcat55.sar/server.xml
- HTTP Connector Port = 18080
- HTTP Redirect Port = 18443
- AJP Connector Port = 18009
- Started Jboss as follows:
$ nohup /home/upt/apps/jboss-4.0.5.GA/bin/run.sh > ~/jboss-log.out &
- When logging into the application, Jboss gives out a wrong driver for mysql.
This error is because the upt.war was created with an older version of mysql java connector. This was corrected by re-creating the upt.war with the latest version of MySQL JDBC jar.
Steps followed to download the latest version of MySQL JDBC jar
$ cd /opt/get-apps $ mkdir mysql-jdbc $ cd mysql-jdbc $ wget http://mirror.services.wisc.edu/mysql/Downloads/Connector-J/mysql-connector-java-5.0.8.tar.gz $ tar -xvzf mysql-connector-java-5.0.8.tar.gz
- Documentation for better understanding UPT can be found here.
caArray
- Get the 2 jboss versions from /opt/get-apps/jboss for caArray. Jboss-4.0.4-GA for caGrid service access and Jboss-4.0.5 for caArray local access.
$ cd ~/apps $ mkdir caarray2 $ cd caarray2 $ unzip /opt/get-apps/jboss/jboss-4.0.4.GA.zip $ unzip /opt/get-apps/jboss/jboss-4.0.5.GA.zip
- Changed the port numbers for the 2 Jboss instances at /home/caarray/apps/caarray2/<jboss>/server/default/deploy/jbossweb-tomcat55.sar/server.xml.
- For the caGrid Jboss instance, the port numbers were: 28080, 28443, and 28009. For the caArray Jboss instance, the port numbers were: 38080, 38443, 38009.
caTissue Suite
- caTissueSuite-1.1 requires Jboss-4.2.2.GA.
- After installing Jboss at /home/catissue/apps, the HTTP ports were changed to 48080, 48009, and 48443 in /home/catissue/apps/jboss-4.2.2.GA/server/default/deploy/jboss-web.deployer/server.xml.
- JBOSS_HOME was set as shown below
$ cat > ~/.bashrc << EOF export JBOSS_HOME=/home/catissue/apps/jboss-4.2.2.GA export PATH=$JBOSS_HOME/bin:$PATH EOF
- caTissue was be downloaded from here
- The pre-installation configuration was done according to the caTissueSuite Deployment Manual
Error
- After starting caTissueSuite Jboss instance at port 48080, started UPT Jboss instance at port 18080.
- However, UPT's Jboss server gave out an error: address already in use for ports 4444, 4445, 8083, 8093, 1098, 1099.
- Port 4444 and 4445 in Jboss are used for Remote Method Invocation (RMI)/Java Remote Method Protocol (JRMP).
- Port 8083 is Jboss HTTP bind address
- Port 8093 is Java Naming and Directory Interface (JNDI) API
- Port 1098 is the port of RMI naming service
- port 1099 is the listening port for the bootstrap Java Network Programming (JNP) service (pure Java implementation of JNDI)
- The above error was resolved temporarily by modifying the
- UPT ports at /home/upt/apps/jboss-4.0.5.GA/server/default/conf/jboss-service.xml to 14444, 14445, 18083, 11098, 11099
- UPT port 8093 at /home/upt/apps/jboss-4.0.5.GA/server/default/deploy/jms/uil2-service.xml to 18093
- caTissueSuite's ports at /home/catissue/apps/jboss-4.2.2.GA/server/default/conf/jboss-service.xml to 44444, 44445, 48083, 41098, 41099
- caTissueSuite port 8093 at /home/catissue/apps/jboss-4.0.5.GA/server/default/deploy/jms/uil2-service.xml to 48093
- In addition, caTissueSuite port 4446 was changed to 44446
Firewall Config
- The VM's firewall was updated to include these services
Port Number Type of Service 22 SSH 123 NTP 5353 DNS 8080 HTTP 8443 HTTP-Redirect 18080 User Provisioning Tool 28080 caArray Grid Service 38080 caArray Local Service 48080 caTissueSuite Local Service
- The ports blocked off were:
Port Number Type of Service 50 Remote Mail Checking 51 IMP Logical Address Maintenance 631 Internet Printing Protocol
- Also, the unix printing service CUPS was also blocked with chkconfig --del cups
