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:[email protected]: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
...
<Server port="8021" shutdown="SHUTDOWN">
...
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" emptySessionPath="true"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" />
...
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node01">
...
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
...
$ cp /usr/local/tomcat/conf/tomcat-users.xml /usr/local/tomcat/conf/tomcat-users.xml.000
$ vi /usr/local/tomcat/conf/tomcat-users.xml
...
<tomcat-users>
<role rolename="manager"/>
<role rolename="tomcat"/>
<role rolename="admin"/>
<user name="tomcat" password="tomcat" roles="manager,tomcat,admin" />
</tomcat-users>
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?
