=====HISTORY - Set-up for Springboard development=====
===19/04/2012:===
Ignore the basic Centos set-up (and subsequent switch to X Windows desktop)...
Disable SELinux:
# vi /etc/selinux/config
...
SELINUX=permissive
...
Then, reboot and check
# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted
Create jtadmin account:
# useradd jtadmin
# passwd jtadmin
...
Grant jtadmin full sudo access:
# visudo
...
jtadmin ALL=(ALL) ALL
...
Need to install basic software (httpd already installed via yum):
Java:
Download JDK and set-up...
# cd /usr/local
# chmod 755 jdk-6u31-linux-i586.bin
# ./jdk-6u31-linux-i586.bin
...
# ln -s /usr/local/jdk1.6.0_31/ /usr/local/java
Ant:
Download and set-up...
# tar -zxf apache-ant-1.8.3-bin.tar.gz
# ln -s /usr/local/apache-ant-1.8.3/ /usr/local/ant
Tomcat:
Download and set-up...
# tar -zxf apache-tomcat-5.5.35.tar.gz
# chown -R jtadmin.jtadmin apache-tomcat-5.5.35/
# ln -s /usr/local/apache-tomcat-5.5.35/ /usr/local/tomcat
MySQL:
Default version for Centos 6.2 is 5.1, but this has had issues with Hibernate
and Springboard - so will try to install 5.0 manually for now.
Ensure any other versions are uninstalled first...
# yum list mysql*
...
# rpm -ivh MySQL-server-5.0.96-1.glibc23.i386.rpm \
> MySQL-client-5.0.96-1.glibc23.i386.rpm \
> MySQL-shared-5.0.96-1.glibc23.i386.rpm
#/usr/bin/mysql_secure_installation
... (root/password)
MySQL is running as a service by default.
CVS:
# yum install cvs
...
NTP:
Installed by default - but not running as a service...
# chkconfig --level 345 ntpd on
# chkconfig --list|grep ntp
ntpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# service ntpd start
Starting ntpd: [ OK ]
SAMBA:
# yum install samba samba-common samba-winbind
...
# cd /etc/samba/
# cp smb.conf smb.conf.000
# vi smb.conf
[global]
workgroup-wiley.com
security=USER
[centos6]
path=/home/jtadmin
guest ok=yes
read only=no
create mask=0644
# chkconfig --level 345 smb on
# chkconfig --level 345 nmb on
# service smb start
...
# service nmb start
...
DON'T NEED nmb running - but do need to set-up smb user for jtadmin:
# smbpasswd -a jtadmin
...
# chkconfig --list|grep smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig --list|grep nmb
nmb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Update jtadmin profile - then switch to jtadmin user:
$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export JAVA_HOME=/usr/local/java
export ANT_HOME=/usr/local/ant
export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ANT_HOME/bin
Check as ~jtadmin...
$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Client VM (build 20.6-b01, mixed mode, sharing)
$ ant -version
Apache Ant(TM) version 1.8.3 compiled on February 26 2012
NOTE: Also need to disable firewall (iptables) which appears to be enabled by
default.
# yum install system-config-firewall
...
Then disable the firewall via the installed GUI.
LATE NOTES:
Have disabled SELinux for now (though probably didn't need to - as the Apache
issue below wasn't about SELinux).
===Set-up ~jtadmin environment...===
$ vi ~/springboard.env
. ~jtadmin/system.env
. ~jtadmin/user.env
$ chmod 755 springboard.env
Add this script to bash profile...
$ vi ~/system.env
# Java (also appears in ~/.bash_profile)
#export JAVA_HOME=/usr/local/java
#export ANT_HOME=/usr/local/ant
#export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$ANT_HOME/bin
export JRE_HOME=$JAVA_HOME/jre
# Tomcat
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=$CATALINA_HOME
export CATALINA_PID=$CATALINA_BASE/temp/catalina.pid
export CATALINA_OPTS='-Xms256m -Xmx256m -server
-Dspringboard.inst.name=local
-Dspringboard.base.dir=/home/jtadmin/springboard/base
-Dspringboard.data.dir=/home/jtadmin/springboard/data
-Duser.language=en
-Duser.country=GB
-Dfile.encoding=UTF-8
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8010
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false '
export JPDA_ADDRESS=8787
export JPDA_TRANSPORT=dt_socket
export SPRINGBOARD_DIST=http://fulcrum.cwsdev4.wiley.com:24000/userfiles/sprdist
export SPRINGBOARD_HOME=/home/jtadmin/springboard/base
export SPRINGBOARD_DATA=/home/jtadmin/springboard/data
export CVSSERVER=172.20.0.216
export DISABLE_UPDATES=0
export PS1='[sb:\W]\$ '
$ chmod 755 system.env
$ vi ~/user.env
export CVSROOT=:pserver:aluwilliam@172.20.0.216:2401/cws_cvs
export DISABLE_UPDATES=1
export HOLDING=
$ chmod 755 user.env
Create basic directories, and check-out initial projects (Springboard + AFT)
$ mkdir ~/projects
$ mkdir ~/springboard
$ vi ~/build.properties
# build properties
jboss.home=${env.SPRINGBOARD_HOME}
dev.root.dir=/home/jtadmin/projects
static-web.dir=${env.SPRINGBOARD_HOME}/htdocs
local.httpd.port=80
#libs.base.dir=/home/jtadmin/springboard/base/sbcore/conf/lib
#project.libs.dir=/home/jtadmin/tomcat/common/lib
#springboard.generate.project=SpringboardDist
#disable.generate=true
#build.lib.jars=*.jar
#build.project.jars=*.jar
build.override.type=aw
junit.outputtofile=yes
junit-report.dir=/home/jtadmin/springboard/data/htdocs/userfiles/reports
junit.format=xml
javac.source.version=1.6
javac.target.version=1.6
$ vi /usr/local/apache-tomcat-5.5.35/shared/classes/springboard.properties
...
$ vi /usr/local/apache-tomcat-5.5.35/shared/classes/log4j.properties
...
$ sudo cp ~/Downloads/mod_jk.so /etc/httpd/modules/
$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.000
$ sudo cp ~/Downloads/httpd.conf /etc/httpd/conf/
$ cvs checkout build
$ cvs checkout Fulcrum
$ cvs checkout libs
$ cvs checkout Springboard
$ cvs checkout SpringboardCommon
$ cvs checkout SpringboardWebApp
Will work thorough a copy of the clean script...
$ cp projects/Springboard/etc/scripts/clean_spr.sh ~
Run database scripts...
$ mysql --default-character-set=utf8 -u root -ppassword < /home/jtadmin/projects/Springboard/etc/db/Springboard_MySQL_InitialDB.sql
$ mysql springboard --default-character-set=utf8 -u root -ppassword < /home/jtadmin/projects/Springboard/etc/db/Springboard_MySQL_CreateDB.sql
$ mysql springboard --default-character-set=utf8 -u root -ppassword < /home/jtadmin/projects/Springboard/etc/db/Springboard_CreateRefData.sql
$ mysql springboard --default-character-set=utf8 -u root -ppassword < /home/jtadmin/projects/Springboard/etc/db/uberUser.sql
$ mysql springboard --default-character-set=utf8 -u root -ppassword < /home/jtadmin/projects/Springboard/etc/db/Springboard_countries_data.sql
All OK - but note...
# Should not include database in use for first script
# Also have issue with nagios user, could update SQL to include
# GRANT USAGE ON *.* TO 'username'@'localhost';
# before DROP USER
#
# Script also expects user springboard to already exist...
# grant all privileges on *.* to "springboard"@"%" identified by "password";
Ensure correct folders and symlinks exist...
$ mkdir --parents $SPRINGBOARD_HOME/htdocs
$ mkdir --parents $SPRINGBOARD_HOME/conf/classes
$ mkdir --parents $SPRINGBOARD_HOME/conf/httpd/rel
$ mkdir --parents $SPRINGBOARD_HOME/extra/files
$ mkdir --parents $SPRINGBOARD_HOME/biofpr/jsp
$ mkdir --parents $SPRINGBOARD_DATA/htdocs/userfiles
$ ln -s /var/run ~jtadmin/springboard/run
$ ln -s /var/log/httpd ~jtadmin/springboard/logs
$ ln -s /usr/lib/httpd/modules ~jtadmin/springboard/modules
$ ln -s /etc/httpd/conf ~jtadmin/springboard/conf
$ ln -s $SPRINGBOARD_HOME/sbcore/common $SPRINGBOARD_HOME/common
$ ln -s $SPRINGBOARD_HOME/sbcore/fulcrum $SPRINGBOARD_HOME/fulcrum
$ ln -s $SPRINGBOARD_HOME/sbcore/htdocs/common $SPRINGBOARD_HOME/htdocs/common
$ ln -s $SPRINGBOARD_HOME/sbcore/htdocs/fulcrum $SPRINGBOARD_HOME/htdocs/fulcrum
$ ln -s $SPRINGBOARD_HOME/sbcore/htdocs/fckeditor $SPRINGBOARD_HOME/htdocs/fckeditor
$ ln -s $SPRINGBOARD_HOME/sbcore/conf/httpd/httpd-common-rewrites.conf $SPRINGBOARD_HOME/conf/httpd/httpd-common-rewrites.conf
$ ln -s $SPRINGBOARD_HOME/fulcrum/jsp $SPRINGBOARD_HOME/sbcore/webapps/SpringboardWebApp/WEB-INF/fulcrum
$ ln -s $SPRINGBOARD_HOME/biofpr/jsp $SPRINGBOARD_HOME/sbcore/webapps/SpringboardWebApp/WEB-INF/biofpr
$ ln -s $SPRINGBOARD_DATA/htdocs/userfiles $SPRINGBOARD_HOME/sbcore/webapps/SpringboardWebApp/userfiles
Add Solr...
$ cd $SPRINGBOARD_HOME
$ curl -O http://fulcrum.cwsdev4.wiley.com:24000/userfiles/sprdist/apache-solr-3.3.0.war
...
$ ln -s $SPRINGBOARD_HOME/apache-solr-3.3.0.war $SPRINGBOARD_HOME/apache-solr.war
Build springboard-all
Apache conf issues??
Some modules missing on Centos 6 so removed from config...
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
Also log folder needs changing as default config runs Apache as jtadmin...
# chown jtadmin.jtadmin /var/log/httpd
Needs cronolog install/set-up... (install rpmforge repository)
$ curl -LO http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -K ~jtadmin/Downloads/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -ivh ~jtadmin/Downloads/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# yum install cronolog
...
Springboard expects a different cronolog location...
# ln -s /usr/sbin/cronolog /usr/local/bin/cronolog
Also the previous PID file location stopped Apache restarting properly - have
changed this to...
PidFile /var/run/httpd/httpd.pid
Start Apache...
$ sudo service httpd restart
Tomcat config:
$ cp /usr/local/tomcat/conf/catalina.properties /usr/local/tomcat/conf/catalina.properties.000
$ vi /usr/local/tomcat/conf/catalina.properties
...
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar,/home/jtadmin/springboard/base/sbcore/conf/classes,/home/jtadmin/springboard/base/conf/classes,/home/jtadmin/springboard/base/sbcore/conf/lib/*.jar,/home/jtadmin/springboard/base/conf/lib/*.jar
...
$ cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.000
$ vi /usr/local/tomcat/conf/server.xml
...
...
...
...
...
$ cp /usr/local/tomcat/conf/tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml.000
$ vi /usr/local/tomcat/conf/tomcat-users.xml
...
Context config appears to have been deployed in the build...
$ ls -l /usr/local/tomcat/conf/Catalina/localhost/
total 16
-rw-rw-r--. 1 jtadmin jtadmin 271 Apr 20 09:05 apache-solr.xml
-rw-------. 1 jtadmin jtadmin 1148 Jan 6 19:21 host-manager.xml
-rw-------. 1 jtadmin jtadmin 1303 Jan 6 19:21 manager.xml
-rw-rw-r--. 1 jtadmin jtadmin 98 Apr 20 09:05 SpringboardWebApp.xml
Needs local host name set-up
# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos6.local fulcrum.local
$ /usr/local/tomcat/bin/startup.sh
Seems to work...
Try project (AFT)...
$ ./wbuild.sh aft checkout
...
$ ./wbuild.sh aft deploy
...
restart...
Cool!
===TODO:===
- SAMBA!
- Scripted set-up?