1.1.3
- 1 Preamble
- 2 DOWN
- 3 DEPLOY
- 3.1 ETL PROD
- 3.1.1 upgrade ETL code
- 3.1.2 migrate DB
- 3.1.3 reconfigure geowebcache truncate job
- 3.2 upgrade java (SF_PROD_GEO, SD_PROD_GEO)
- 3.3 upgrade tomcat (SF_PROD_GEO, SD_PROD_GEO)
- 3.3.1 preamble
- 3.3.2 install tomcat 7
- 3.3.3 configure tomcat startup
- 3.3.4 tomcat start, stop, restart
- 3.3.5 inspect log files for errors
- 3.3.6 examine tomcat admin panel
- 3.4 upgrade geoserver (SF_PROD_GEO, SD_PROD_GEO)
- 3.5 install image processing software (SF_PROD_GEO, SD_PROD_GEO)
- 3.5.1 proj.4
- 3.5.2 install geos
- 3.5.3 install gdal
- 3.6 deploy imagery data (SF_PROD_GEO, SD_PROD_GEO)
- 3.7 upgrade the deploy automation and deploy (SF_PROD_GEO, SD_PROD_GEO)
- 3.8 deploy web application (SF_PROD_WEB, SD_PROD_WEB)
- 3.1 ETL PROD
- 4 UP
- 4.1 web
- 5 Seed Image Cache
- 6 DONE!
Preamble
Notify all stake holders before the release.
Before proceeding with initializations, make sure that you are pointing at branches/1.1.3.
Execute all steps in the SF ENVs first and test the application.
If tests pass, then execute steps on SD ENVs.
Should things go badly, we can switch over to SD.
DOWN
web into MAINT mode (SF_PROD_WEB)
put the web servers into maintenance mode (SF WEB, SD WEB)
cd /var/www/html
sudo ./set_eas_mode.sh MAINTdatabase backup (SF_PROD_DB)
sudo -u postgres -i
/home/dba/scripts/dbbackup.sh > /var/tmp/dbbackup.logDEPLOY
ETL PROD
upgrade ETL code
Log into to the ETL server and do the following.
REM see warning above
cd "C:\Program Files\MAD\"
del etl
setup.batmigrate DB
Now you can run this migrate job:
cd etl\src
python job.py --job migrate_to_1.1.3 --action INIT --env SF_PRODreconfigure geowebcache truncate job
Add an scheduled task to truncate the geowebcache.
The ETL job name is "map_cache_truncate".
This makes obsolete the linux crontab entry on GEO PROD (SF for sure, maybe SD) that truncate the geowebcache...
so you must remove these crontab entires. Execute the line below on sf_prod_geo to being editing the crontab...
sudo crontab -e
upgrade java (SF_PROD_GEO, SD_PROD_GEO)
install the latest version of java
Remember that in PROD you must also do this to the SD instance!
http://docs.geoserver.org/stable/en/user/production/java.html
http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jre.html#install-64-rpm
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn-pub/java/jdk/7/jre-7-linux-x64.rpm"
sudo rpm -ivh jre-7-linux-x64.rpm?AuthParam=1347904319_53c7d4517bc08e457c15c859a1ba216einstall JAI
http://download.java.net/media/jai/builds/release/1_1_3/
wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jre.bin
sudo cp jai-1_1_3-lib-linux-amd64-jre.bin /usr/java/jre1.7.0
cd /usr/java/jre1.7.0
sudo sh jai-1_1_3-lib-linux-amd64-jre.binremove previous version of java
cd /usr
sudo rm -rf jdk1.6.0_24upgrade tomcat (SF_PROD_GEO, SD_PROD_GEO)
preamble
sudo /usr/sbin/usermod -g geodev tomcat
sudo /usr/sbin/usermod -d /usr/share/apache-tomcat-7.0.32 tomcatinstall tomcat 7
http://davidghedini.blogspot.com/2011/02/install-tomcat-7-on-centos-rhel.html
wget http://mirror.olnevhost.net/pub/apache/tomcat/tomcat-7/v7.0.32/bin/apache-tomcat-7.0.32.tar.gz
cd /usr/share
sudo tar xvfz ~/apache-tomcat-7.0.32.tar.gz
sudo chown -Rf tomcat:geodev /usr/share/apache-tomcat-7.0.32/configure tomcat startup
Ensures that tomcat will startup on server restart.
cd /etc/init.d
sudo svn export http://eas.googlecode.com/svn/trunk/geoserver/tomcat
sudo dos2unix tomcat
sudo chmod 755 tomcat
sudo -u root /sbin/chkconfig --add tomcat
sudo -u root /sbin/chkconfig --level 234 tomcat on
sudo -u root /sbin/chkconfig --list tomcat
sudo chmod g+rwx /usr/share/apache-tomcat-7.0.32/webapps
svn export http://eas.googlecode.com/svn/trunk/geoserver/deploy_geoserver_env.sh /usr/share/apache-tomcat-7.0.32/webapps/deploy_geoserver_env.shtomcat start, stop, restart
sudo /sbin/service tomcat start
sudo /sbin/service tomcat stopinspect log files for errors
view /usr/share/apache-tomcat-7.0.32/logs/catalina.outexamine tomcat admin panel
SSH tunnel required.
http://localhost:8081/ (DEV)
http://localhost:8082/ (QA)
http://localhost:8083/ (PROD)
remove old version of tomcat
sudo rm -rf /usr/share/tomcat5
sudo rm /etc/init.d/tomcat5upgrade geoserver (SF_PROD_GEO, SD_PROD_GEO)
cd /usr/share/apache-tomcat-7.0.32/webapps
sudo wget http://downloads.sourceforge.net/geoserver/geoserver-2.1.4-war.zip
sudo unzip geoserver-2.1.4-war.zip
sudo /sbin/service tomcat start
sudo /sbin/service tomcat stopClean out the gwc
sudo rm -rf /srv/gwc/*install geoserver image pyramid plugin
mkdir downloads/
cd downloads/
wget http://iweb.dl.sourceforge.net/project/geoserver/GeoServer%20Extensions/2.1.4/geoserver-2.1.4-pyramid-plugin.zip
unzip geoserver-2.1.4-pyramid-plugin.zip
sudo cp gt-imagepyramid-2.7.5.jar /usr/share/apache-tomcat-7.0.32/webapps/geoserver/WEB-INF/lib
sudo chown -R tomcat:geodev /usr/share/apache-tomcat-7.0.32/webapps/geoserver
sudo /sbin/service tomcat startinstall image processing software (SF_PROD_GEO, SD_PROD_GEO)
We need to install the following on the geoserver boxes so we can process imagery in situ.
Add a python symlink...
cd /usr/local/bin/
sudo ln -s /usr/local/bin/python2.5 python proj.4
sudo chown dev /usr/local/src
mkdir /usr/local/src/TARFILES
cd /usr/local/src/TARFILES
wget ftp://ftp.remotesensing.org/proj/proj-4.8.0.tar.gz
wget ftp://ftp.remotesensing.org/proj/proj-datumgrid-1.5.tar.gz
cd ../
tar xvfz TARFILES/proj-4.8.0.tar.gz
cd proj-4.8.0/nad
tar xvfz ../../TARFILES/proj-datumgrid-1.5.tar.gz
cd ..
./configure --without-jni
make
sudo make install
install geos
cd /usr/local/src/TARFILES
wget http://download.osgeo.org/geos/geos-3.3.3.tar.bz2
cd ..
tar xvfj TARFILES/geos-3.3.3.tar.bz2
cd geos-3.3.3
# no python bindings
./configure
make
sudo make installinstall gdal
cd /usr/local/src/TARFILES
wget http://download.osgeo.org/gdal/gdal-1.9.0.tar.gz
cd ../
tar xvfz TARFILES/gdal-1.9.0.tar.gz
cd gdal-1.9.0/
# set your PATH properly so we get the right version of python
export PATH=/usr/local/bin/:$PATH
./configure --with-python
make
sudo PATH=/usr/local/bin/:$PATH make install Add this to your .bashrc
LD_LIBRARY_PATH_DEFAULT=/usr/local/lib
export LD_LIBRARY_PATH_DEFAULT
LD_LIBRARY_PATH=$LD_LIBRARY_PATH_DEFAULT
export LD_LIBRARY_PATHdeploy imagery data (SF_PROD_GEO, SD_PROD_GEO)
setup imagery/geoserver directories
sudo mkdir /srv/gwc
sudo mkdir /srv/imagery
sudo mkdir /srv/imagery/pyramids
sudo mkdir /srv/imagery/pyramids/2012
sudo chown -R tomcat:geodev /srv/imagery/
sudo chown -R tomcat:geodev /srv/gwc/
sudo chmod -R g+rw /srv/imagery/pyramidscopy/prepare the data
You can either build the pyramid or copy the one from SF DEV GEO.
For this deploy, we are going to do the latter.
Do this well before the actual deploy.
Copy
from SF_DEV_GEO//srv/imagery
to SF_PROD_GEO//srv/imagery & SD_PROD_GEO//srv/imagery
Use secure FTP which operates over SSH; I use winscp.
This is about 7GB and takes about 15-20 minutes per node.
In the off chance that you need to build the pyramid from scratch, follow the instructions spelled out in main():
http://code.google.com/p/eas/source/browse/trunk/bin/build_pyramids.py
upgrade the deploy automation and deploy (SF_PROD_GEO, SD_PROD_GEO)
cd /usr/share/apache-tomcat-7.0.32/webapps
sudo svn export http://eas.googlecode.com/svn/trunk/geoserver/deploy_geoserver_init.sh
sudo dos2unix deploy_geoserver_init.sh
sudo ./deploy_geoserver_init.shAfter the start up inspect the the log file.
view /usr/share/apache-tomcat-7.0.32/webapps/geoserver_configuration/logs/geoserver.logThis exception is OK because we do not use this plugin:
DEBUG...
Unable to load kakadu JPEG2000 reader spi
java.lang.ClassNotFoundException: it.geosolutions.imageio.plugins.jp2k.JP2KKakaduImageReaderSpi
...The should be no exceptions besides this one.
deploy web application (SF_PROD_WEB, SD_PROD_WEB)
# see warning at top
cd /var/www/html
sudo ./deploy_eas_init.sh
# make sure web application works and is correct versionUP
web
put WEB (SF/SD) servers into LIVE mode
cd /var/www/html
sudo ./set_eas_mode.sh LIVEand test the application. You will not be able to log into SD.
Put SD WEB servers into STANDBY mode
cd /var/www/html
sudo ./set_eas_mode.sh SD_STANDBY
Seed Image Cache
Once again, log into ETL PROD and seed the image cache:
python job.py --job SEED_IMAGE_CACHE --action EXECUTE --env SF_PRODThis took about 8 hours to run from level 12 to level 19 inclusive.
DONE!