-
User expired authoredUser expired authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
prepareEnvironment.sh 36.05 KiB
#! /bin/bash
#############################
# This bootstrap script sets up some build tools and the installs the packages
# - geoserver
# - httpd
# - neo4j
# - neo4j-spatial
# - postgresql
# - postgis
# - osmosis
# into a centos6 (32bit and 64bit) or centos7 (64bit only) environment.
#
# It can be used in the context of a Vagrantfile to configure a vagrant box and all
# the installations can be configured using the variables in the config.sh file.
# After various installations are performed the installed services are started as well.
############################
if [ "$EUID" -ne "0" ]; then
echo '- This script must be run as root!'
exit 1
fi
if [ -f "/var/vagrant_provision" ]; then
echo '- The box has already been provisioned'
exit 0
fi
############################
# Variable definitions #
############################
INSTALL_GEOSERVER=false
INSTALL_HTTPD=true
# install isochrone from vagrant start directory (eclipse project)
INSTALL_ISOCHRONE_LOCAL=false
# install latest isochrone release from nexus repository
INSTALL_ISOCHRONE_RELEASE=true
# install latest isochrone snapshot from nexus repository
INSTALL_ISOCHRONE_SNAPSHOT=true
# install latest isochrone-datamodel from nexus repository
INSTALL_ISOCHRONE_DATAMODEL=true
# install latest isochrone-tools from nexus repository
INSTALL_ISOCHRONE_TOOLS=true
INSTALL_NEO4J=false
INSTALL_NEO4J_SPATIAL=false
INSTALL_POSTGIS=false
INSTALL_POSTGRES=false
INSTALL_POSTGRES_ADMIN=true
INSTALL_PROJECT_PSIPROBE=true
INSTALL_SPATIALITE=false
INSTALL_SPATIALITE_ADMIN=false
SCRIPT="$(readlink -f ${BASH_SOURCE[0]})"
SCRIPT_DIR="$(dirname ${SCRIPT})"
if [ ! -f "${SCRIPT_DIR}/config.sh" ]; then
# If config.properties is not besides the bash-script (most likely because vagrant uploaded it into the guest)
# we will try to find it in the shared folder
SCRIPT_DIR="/vagrant/bootstrap"
fi
if [ ! -f "${SCRIPT_DIR}/config.sh" ]; then
echo '- No variable declarations found (config.properties file not found)!'
exit 1;
fi
source "${SCRIPT_DIR}/config.sh"
fn_arg2string TOMCAT_PASSWORD "${1}" "${TOMCAT_PASSWORD}"
fn_arg2boolean IS_LOCAL_TEST_DEPLOY "${2}" "${IS_LOCAL_TEST_DEPLOY}"
######################################
# Configuration (tool versions, ...) #
######################################
#Armadillo from epel is too new for postgis (version 4 instead of 3), so use hard-coded file here
ARMADILLO_FILE="armadillo-3.800.2-1.el6.x86_64.rpm"
ARMADILLO_URL="$CACHE_DIR_REMOTE_ISO/$ARMADILLO_FILE"
GDAL_VERSION="2.0.0"
GDAL_FILE="gdal-$GDAL_VERSION.tar.gz"
GDAL_DOWNLOAD_URL="http://download.osgeo.org/gdal/$GDAL_VERSION/$GDAL_FILE"
GEOSERVER_VERSION="2.7.2"
GEOSERVER_FILE="geoserver-$GEOSERVER_VERSION-war.zip"
GEOSERVER_DOWNLOAD_URL="http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE"
GEOSERVER_SHELL_VERSION="0.2-SNAPSHOT"
GEOSERVER_SHELL_FILE="gs-shell-$GEOSERVER_SHELL_VERSION-app.zip"
JAVA_VERSION="8u60"
JAVA_FILE_32="jdk-$JAVA_VERSION-linux-i586.rpm"
JAVA_FILE_64="jdk-$JAVA_VERSION-linux-x64.rpm"
JAVA_CRYPTO_FILE="jce_policy-8.zip"
MAVEN_VERSION="3.3.3"
MAVEN_FILE="apache-maven-$MAVEN_VERSION-bin.zip"
MAVEN_DOWNLOAD_URL="http://www.eu.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/$MAVEN_FILE"
NEO4J_DB_USER="neo4j"
NEO4J_VERSION="2.2.5"
NEO4J_FILE="neo4j-community-$NEO4J_VERSION-unix.tar.gz"
NEO4J_DOWNLOAD_URL="http://dist.neo4j.org/$NEO4J_FILE"
NEO4J_SERVICE_NAME="neo4j"
#NEO4J_SPATIAL_GIT_URL="https://github.com/neo4j/spatial.git"
#NEO4J_SPATIAL_VERSION="0.13-neo4j-2.1"
NEO4J_SPATIAL_GIT_URL="https://github.com/RobertBierbauer/spatial.git"
NEO4J_SPATIAL_VERSION="Enhanced-Functionality"
NEXUS_ARTIFACT_NAME_WEB="isochrone-web"
NEXUS_ARTIFACT_NAME_TOOLS="isochrone-tools"
NEXUS_ARTIFACT_NAME_DATAMODEL="isochrone-datamodel"
NEXUS_BASE_URL="http://dbis-nexus.uibk.ac.at"
NEXUS_PUBLIC_REPO="isochrone"
#NEXUS_PUBLIC_REPO="public"
NEXUS_RELEASE_ISOCHRONE_WEB="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_WEB&v=RELEASE&p=war"
#NEXUS_RELEASE_ISOCHRONE_WEB="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_WEB&v=0.5.1&p=war"
NEXUS_SNAPSHOT_ISOCHRONE_WEB="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_WEB&v=LATEST&p=war"
NEXUS_SNAPSHOT_ISOCHRONE_TOOLS="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_TOOLS&v=LATEST&c=all&p=jar"
NEXUS_SNAPSHOT_ISOCHRONE_DATAMODEL="$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME_DATAMODEL&v=LATEST&c=all&p=jar"
OSMCONVERT_FILE="osmconvert.c"
OSMCONVERT_DOWNLOAD_URL="http://m.m.i24.cc/$OSMCONVERT_FILE"
OSMOSIS_VERSION="0.44.1"
OSMOSIS_FILE="osmosis-$OSMOSIS_VERSION.zip"
OSMOSIS_DOWNLOAD_URL="http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE"
PHPLITEADMIN_VERSION="v1-9-6"
PHPLITEADMIN_URL="https://bitbucket.org/phpliteadmin/public/downloads/phpLiteAdmin_$PHPLITEADMIN_VERSION.zip"
POSTGIS_GIT_URL="https://github.com/postgis/postgis.git"
POSTGIS_VERSION="auto" # activate to install from repository
#POSTGIS_VERSION="2.1.5" # activate to install from source
POSTGRESQL_DATA_DIR="/var/lib/pgsql/data"
POSTGRESQL_SERVICE_NAME="postgresql"
POSTGRESQL_SHORT_VERSION=""
POSTGRESQL_VERSION=""
REPO_ELGIS="none"
REPO_EPEL="none"
REPO_POSTGRESQL="none" # will be set later (depending on architecture)
REPO_POSTGRESQL_32="auto"
REPO_POSTGRESQL_64="auto"
REPO_RPMFORGE="none" # will be set later (depending on architecture)
REPO_RPMFORGE_32="auto"
REPO_RPMFORGE_64="auto"
REPO_RPMFORGE_CONFIG="/etc/yum.repos.d/rpmforge.repo"
SELINUX_CONFIG="/etc/selinux/config"
SPATIALITE_VERSION="4.3.0"
SPATIALITE_FILE="libspatialite-$SPATIALITE_VERSION.tar.gz"
SPATIALITE_URL="http://www.gaia-gis.it/gaia-sins/libspatialite-sources/$SPATIALITE_FILE"
TEMPLATE_PSIPROBE_VERSION="2.3.3"
TEMPLATE_PSIPROBE_FILE="probe-$TEMPLATE_PSIPROBE_VERSION.zip"
TEMPLATE_PSIPROBE_DOWNLOAD_URL="https://psi-probe.googlecode.com/files/$TEMPLATE_PSIPROBE_FILE"
TEMPLATE_DIR_ISOCHRONE="/vagrant"
TOMCAT_VERSION="8.0.26"
TOMCAT_FILE="apache-tomcat-$TOMCAT_VERSION.tar.gz"
TOMCAT_DOWNLOAD_URL="http://tweedo.com/mirror/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/$TOMCAT_FILE"
TOMCAT_MEMORY_OPTS="-Xmx2048m -Xms512m"
TOMCAT_NAME="tomcat"
TOMCAT_USER="tomcat"
TOMCAT_WEBAPP_DIR="$DEPLOY_DIR/$TOMCAT_NAME/webapps"
TOPOLOGY_TOLERANCE=0.0005
############################
# OS check & configuration #
############################
IS_64_BIT=false
if [ "x86_64" == $(uname -m) ]; then
IS_64_BIT=true
fi
DISTRI_FILE="/etc/redhat-release"
if [ ! -f "$DISTRI_FILE" ]; then
DISTRI_FILE="/etc/issue"
fi
DISTRI_NAME=$(cat "$DISTRI_FILE" | head -n 1)
DISTRI_SUPPORTED=false
DISTRI_TYPE=""
DISTRI=$(printf "$DISTRI_NAME" | cut -d " " -f 1)
if [ "$DISTRI" == "CentOS" ]; then
POSTGRESQL_SHORT_VERSION="94"
POSTGRESQL_VERSION="9.4"
if printf "$DISTRI_NAME" | egrep -q " 6." ; then
DISTRI_TYPE="CentOS 6"
REPO_ELGIS="http://elgis.argeo.org/repos/6/elgis-release-6-6_0.noarch.rpm"
REPO_EPEL="https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm"
REPO_POSTGRESQL_32="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-i386/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-6-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
REPO_RPMFORGE_32="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm"
REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm"
DISTRI_SUPPORTED=true
elif printf "$DISTRI_NAME" | egrep -q " 7." ; then
DISTRI_TYPE="CentOS 7"
ARMADILLO_FILE="none"
REPO_EPEL="https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm"
REPO_POSTGRESQL_64="http://yum.postgresql.org/$POSTGRESQL_VERSION/redhat/rhel-7-x86_64/pgdg-centos$POSTGRESQL_SHORT_VERSION-$POSTGRESQL_VERSION-1.noarch.rpm"
REPO_RPMFORGE_64="http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm"
DISTRI_SUPPORTED=$IS_64_BIT
fi
fi
if ! $DISTRI_SUPPORTED; then
echo "Unsupported OS. Only CentOS 6 (32bit and 64bit) and CentOS 7 (64bit) are supported!"
exit 1;
fi
############################
# Calculated configuration #
############################
INSTALL_GDAL=false
INSTALL_JAVA=false
INSTALL_MAVEN=false
INSTALL_OSMCONVERT=false
INSTALL_OSMOSIS=false
INSTALL_TOMCAT=false
if $UPDATE_DATA; then
INSTALL_GDAL=true
INSTALL_SPATIALITE=true
INSTALL_OSMCONVERT=true
INSTALL_OSMOSIS=true
INSTALL_ISOCHRONE_DATAMODEL=true
fi
if $IS_LOCAL_TEST_DEPLOY; then
# Some projects will never be installed when in local deploy mode (like latest release/snapshot from nexus)
INSTALL_PROJECT_PSIPROBE=false
INSTALL_ISOCHRONE_LOCAL=false
INSTALL_ISOCHRONE_RELEASE=false
INSTALL_ISOCHRONE_SNAPSHOT=false
fi
if $IMPORT_DATA_NEO4J_SPATIAL; then
INSTALL_ISOCHRONE_TOOLS=true
INSTALL_NEO4J_SPATIAL=true
INSTALL_OSMOSIS=true
fi
if $IMPORT_DATA_POSTGIS; then
INSTALL_POSTGRES=true
INSTALL_POSTGIS=true
fi
if $IMPORT_DATA_SPATIALITE || $INSTALL_GDAL || $INSTALL_SPATIALITE_ADMIN; then
INSTALL_SPATIALITE=true
fi
if $INSTALL_POSTGRES_ADMIN || $INSTALL_SPATIALITE_ADMIN; then
INSTALL_HTTPD=true
fi
if $INSTALL_GEOSERVER || $INSTALL_ISOCHRONE_LOCAL || $INSTALL_ISOCHRONE_RELEASE || $INSTALL_ISOCHRONE_SNAPSHOT || $INSTALL_PROJECT_PSIPROBE; then
INSTALL_TOMCAT=true
fi
if $INSTALL_NEO4J_SPATIAL; then
INSTALL_NEO4J=true
INSTALL_MAVEN=$IMPORT_DATA_NEO4J_SPATIAL
fi
if $INSTALL_ISOCHRONE_TOOLS || $INSTALL_ISOCHRONE_DATAMODEL || $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA_NEO4J_SPATIAL; then
INSTALL_JAVA=true
fi
if $INSTALL_POSTGRES_ADMIN || $INSTALL_POSTGIS; then
INSTALL_POSTGRES=true
fi
if [ ! $POSTGRESQL_VERSION == "" ]; then
POSTGRESQL_DATA_DIR="/var/lib/pgsql/$POSTGRESQL_VERSION/data"
POSTGRESQL_SERVICE_NAME="postgresql-$POSTGRESQL_VERSION"
fi
POSTGRESQL_GLOB_CONF="$POSTGRESQL_DATA_DIR/postgresql.conf"
POSTGRESQL_HBA_CONF="$POSTGRESQL_DATA_DIR/pg_hba.conf"
POSTGRESQL_PKG_NAME="postgresql$POSTGRESQL_SHORT_VERSION"
if $IS_64_BIT; then
REPO_POSTGRESQL="$REPO_POSTGRESQL_64"
REPO_RPMFORGE="$REPO_RPMFORGE_64"
JAVA_FILE="$JAVA_FILE_64"
else
REPO_POSTGRESQL="$REPO_POSTGRESQL_32"
REPO_RPMFORGE="$REPO_RPMFORGE_32"
JAVA_FILE="$JAVA_FILE_32"
fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Performing basic system preparations ($(date +%H:%M:%S)):"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
START=$(date +%s)
############################
# Basic preparations #
############################
mkdir -p $DOWNLOAD_DIR
mkdir -p $WORKING_DIR
echo "Deleting outdated log files"
rm -rf $WORKING_DIR/*.log
cd "$WORKING_DIR"
echo "Configuring timezone"
cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime >> $WORKING_DIR/setup_timezone.log 2>&1
echo "Installing utils (gcc, git, ...)"
yum -y install gcc gcc-c++ git gzip iptables-services nano nmap sed tar unzip wget zip >> $WORKING_DIR/install_utils.log 2>&1
############################
# Security preparations #
############################
echo "Stopping Firewall and SELinux"
if [ "$DISTRI_TYPE" == "CentOS 6" ]; then
fn_service_stop "iptables"
fn_service_stop "ip6tables"
else
fn_service_stop "firewalld"
fi
if [ $(getenforce) == "Enforcing" ]; then
setenforce 0 >> $WORKING_DIR/stop_selinux.log 2>&1
fi
sed -i 's/SELINUX=enabled/SELINUX=disabled/' $SELINUX_CONFIG
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' $SELINUX_CONFIG
############################
# Repository preparations #
############################
if [ ! $REPO_ELGIS == "none" ]; then
# Postgresql 9.4 needs never version of gdal which is not part of epel yet (so we install elgis repo)
if [ $POSTGRESQL_SHORT_VERSION \> "93" ]; then
echo "Installing elgis repository"
fn_download $DOWNLOAD_DIR/elgis-repo.rpm $REPO_ELGIS
yum -y localinstall $DOWNLOAD_DIR/elgis-repo.rpm >> $WORKING_DIR/install_elgis_repo.log 2>&1
echo " - enabled"
fi
fi
if [ ! $REPO_EPEL == "none" ]; then
# Epel Repository is needed for dependencies (gdal!) of postgresql/postgis
echo "Installing epel repository"
fn_download $DOWNLOAD_DIR/epel-repo.rpm $REPO_EPEL
yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm >> $WORKING_DIR/install_epel_repo.log 2>&1
echo " - enabled"
fi
if $INSTALL_POSTGRES; then
if [ "$DISTRI" == "CentOS" ]; then
REPO_CONFIG="/etc/yum.repos.d/CentOS-Base.repo"
sed -i 's/\[base\]/\[base\]\nexclude=postgresql\*/' $REPO_CONFIG
sed -i 's/\[updates\]/\[updates\]\nexclude=postgresql\*/' $REPO_CONFIG
fi
echo "Installing $POSTGRESQL_SERVICE_NAME repository"
fn_download $DOWNLOAD_DIR/postgresql-repo.rpm $REPO_POSTGRESQL
yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm >> $WORKING_DIR/install_postgresql_repo.log 2>&1
echo " - enabled"
fi
# RpmForge is deactivated by default and has to be explicitly activated when using yum
echo "Installing rpmForge repository"
fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm $REPO_RPMFORGE
yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm >> $WORKING_DIR/install_rpmforge_repo.log 2>&1
echo " - disabled"
sed -i 's/enabled = 1/enabled = 0/' $REPO_RPMFORGE_CONFIG
############################
# Starting bootstrap #
############################
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Bootstrapping the VM ($(date +%H:%M:%S)):"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Operating system $DISTRI_NAME"
echo " - osType: $DISTRI_TYPE"
if $IS_LOCAL_TEST_DEPLOY; then echo "Starting in local test deploy mode"; fi
echo "Installing software:"
if $INSTALL_HTTPD; then echo " - apache webserver"; fi
if $INSTALL_MAVEN; then echo " - apache maven $MAVEN_VERSION"; fi
if $INSTALL_JAVA; then echo " - java $JAVA_VERSION"; fi
if $INSTALL_NEO4J; then echo " - neo4j $NEO4J_VERSION"; fi
if $INSTALL_NEO4J_SPATIAL; then echo " - neo4j-spatial $NEO4J_SPATIAL_VERSION"; fi
if $INSTALL_POSTGRES; then echo " - postgresql $POSTGRESQL_VERSION"; fi
if $INSTALL_POSTGIS; then
if [ "$POSTGIS_VERSION" == "auto" ]; then
echo " - postgis2"
else
echo " - postgis $POSTGIS_VERSION"
fi
fi
if $INSTALL_SPATIALITE; then echo " - spatialite $SPATIALITE_VERSION"; fi
if $INSTALL_SPATIALITE_ADMIN; then echo " - phpLiteAdmin $PHPLITEADMIN_VERSION"; fi
if $INSTALL_GDAL; then echo " - gdal $GDAL_VERSION"; fi
if $INSTALL_TOMCAT; then echo " - tomcat $TOMCAT_VERSION"; fi
if $INSTALL_GEOSERVER; then echo " - geoserver $GEOSERVER_VERSION"; fi
if $INSTALL_POSTGRES_ADMIN; then echo " - phpPgAdmin"; fi
if $INSTALL_OSMCONVERT; then echo " - osmconvert"; fi
if $INSTALL_OSMOSIS; then echo " - osmosis $OSMOSIS_VERSION"; fi
if $IMPORT_DATA_NEO4J_SPATIAL; then echo "Importing data from OSM"; fi
if $INSTALL_ISOCHRONE_LOCAL; then echo "Importing project \"isochrone (local testing)\""; fi
if $INSTALL_ISOCHRONE_RELEASE; then echo "Importing project \"isochrone (release)\""; fi
if $INSTALL_ISOCHRONE_SNAPSHOT; then echo "Importing project \"isochrone (testing)\""; fi
if $INSTALL_ISOCHRONE_DATAMODEL; then echo "Importing project \"isochrone-datamodel\""; fi
if $INSTALL_ISOCHRONE_TOOLS; then echo "Importing project \"isochrone-tools\""; fi
if $INSTALL_PROJECT_PSIPROBE; then echo "Importing project \"psi-probe\""; fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Performing installations ($(date +%H:%M:%S)):"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "Installing cmake"
yum -y --enablerepo=rpmforge-extras install cmake >> $WORKING_DIR/install_cmake.log 2>&1
if $INSTALL_HTTPD; then
echo "Installing httpd server"
yum -y install httpd >> $WORKING_DIR/install_httpd.log 2>&1
fi
if $INSTALL_POSTGRES; then
echo "Installing $POSTGRESQL_SERVICE_NAME"
groupadd -g 26 postgres
useradd -u 26 -g 26 -c "PostgreSQL Server" postgres
yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-contrib $POSTGRESQL_PKG_NAME-server >> $WORKING_DIR/install_postgresql.log 2>&1
if $INSTALL_GDAL; then
yum -y install $POSTGRESQL_PKG_NAME-devel >> $WORKING_DIR/install_postgresql.log 2>&1
fi
echo " - exporting postgresql options"
echo "export PostgreSQL_ROOT=\"/usr/pgsql-$POSTGRESQL_VERSION\"" >> /etc/profile.d/postgresql.sh
echo "export PATH=\"\${PostgreSQL_ROOT}/bin:\${PATH}\"" >> /etc/profile.d/postgresql.sh
source /etc/profile.d/postgresql.sh
fi
if $INSTALL_POSTGIS; then
if [ "$ARMADILLO_FILE" != "none" ]; then
fn_download_newer $DOWNLOAD_DIR/$ARMADILLO_FILE "$ARMADILLO_URL"
yum -y localinstall $DOWNLOAD_DIR/$ARMADILLO_FILE >> $WORKING_DIR/install_armadillo.log 2>&1
fi
if [ "$POSTGIS_VERSION" == "auto" ]; then
echo "Installing postgis2 (from repository)"
yum -y install postgis2_$POSTGRESQL_SHORT_VERSION >> $WORKING_DIR/install_postgis.log 2>&1
else
echo "Installing postgis dependencies"
yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel >> $WORKING_DIR/install_postgis_deps.log 2>&1
echo "Installing postgis $POSTGIS_VERSION (from source)"
git clone -q "$POSTGIS_GIT_URL" $DEPLOY_DIR/postgis-$POSTGIS_VERSION
ln -sf $DEPLOY_DIR/postgis-$POSTGIS_VERSION $DEPLOY_DIR/postgis
cd $DEPLOY_DIR/postgis
git checkout -q $POSTGIS_VERSION >> /dev/null 2>&1
./configure >> $WORKING_DIR/install_postgis.log 2>&1
make >> $WORKING_DIR/install_postgis.log 2>&1
make install >> $WORKING_DIR/install_postgis.log 2>&1
cd "$WORKING_DIR"
fi
fi
if $INSTALL_POSTGRES_ADMIN; then
echo "Installing phpPgAdmin"
yum -y install phpPgAdmin >> $WORKING_DIR/install_phpPgAdmin.log 2>&1
fi
if $INSTALL_JAVA; then
echo "Installing java (oracle jdk-$JAVA_VERSION)"
fn_download_newer $DOWNLOAD_DIR/$JAVA_FILE $CACHE_DIR_REMOTE_ISO/$JAVA_FILE
yum -y localinstall $DOWNLOAD_DIR/$JAVA_FILE >> $WORKING_DIR/install_java.log 2>&1
ln -sf /usr/java/latest $DEPLOY_DIR/jdk >> $WORKING_DIR/setup_java.log 2>&1
ln -sf /usr/java/latest/jre $DEPLOY_DIR/jre >> $WORKING_DIR/setup_java.log 2>&1
echo " - setting alternatives for java"
alternatives --install /usr/bin/java java $DEPLOY_DIR/jre/bin/java 200000 >> $WORKING_DIR/setup_java.log 2>&1
alternatives --install /usr/bin/javaws javaws $DEPLOY_DIR/jre/bin/javaws 200000 >> $WORKING_DIR/setup_java.log 2>&1
alternatives --set java $DEPLOY_DIR/jre/bin/java >> $WORKING_DIR/setup_java.log 2>&1
alternatives --install /usr/bin/javac javac $DEPLOY_DIR/jdk/bin/javac 200000 >> $WORKING_DIR/setup_java.log 2>&1
alternatives --install /usr/bin/jar jar $DEPLOY_DIR/jdk/bin/jar 200000 >> $WORKING_DIR/setup_java.log 2>&1
echo " - exporting java options"
echo "export JAVA_HOME=\"$DEPLOY_DIR/jre\"" >> /etc/profile.d/java.sh
echo "export PATH=\"\${JAVA_HOME}/bin:\${PATH}\"" >> /etc/profile.d/java.sh
source /etc/profile.d/java.sh
echo " - installing strong cryptographie"
fn_download_newer $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE $CACHE_DIR_REMOTE_ISO/$JAVA_CRYPTO_FILE
unzip -j -u -d $DEPLOY_DIR/jre/lib/security $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE >> $WORKING_DIR/setup_java.log 2>&1
fi
if $INSTALL_TOMCAT; then
echo "Installing $TOMCAT_NAME $TOMCAT_VERSION servlet container"
# yum -y install $TOMCAT_NAME $TOMCAT_NAME-webapps $TOMCAT_NAME-admin-webapps >> $WORKING_DIR/install_tomcat.log 2>&1
# ln -sf /usr/share/$TOMCAT_NAME $DEPLOY_DIR/$TOMCAT_NAME
fn_download_newer $DOWNLOAD_DIR/$TOMCAT_FILE $TOMCAT_DOWNLOAD_URL
cp $DOWNLOAD_DIR/$TOMCAT_FILE $DEPLOY_DIR/$TOMCAT_FILE
tar -xvf $DEPLOY_DIR/$TOMCAT_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_tomcat.log 2>&1
rm -f $DEPLOY_DIR/$TOMCAT_FILE >> $WORKING_DIR/install_tomcat.log 2>&1
ln -sf $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $DEPLOY_DIR/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1
echo " - exporting catalina options"
if $INSTALL_GEOSERVER; then
echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data\"" >> /etc/profile.d/catalina.sh
else
echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS\"" >> /etc/profile.d/catalina.sh
fi
source /etc/profile.d/catalina.sh
fi
if $INSTALL_GEOSERVER; then
echo "Installing geoserver $GEOSERVER_VERSION"
fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE $GEOSERVER_DOWNLOAD_URL
unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1
echo " - copying web archive into tomcat"
mkdir -p $TOMCAT_WEBAPP_DIR/geoserver
unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver $TOMCAT_WEBAPP_DIR/geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1
rm -f $TOMCAT_WEBAPP_DIR/geoserver.war >> $WORKING_DIR/install_geoserver.log 2>&1
echo " - creating geoserver data directory"
# mkdir -p $DEPLOY_DIR/geoserver >> $WORKING_DIR/install_geoserver.log 2>&1
# mv $TOMCAT_WEBAPP_DIR/geoserver/data $DEPLOY_DIR/geoserver >> $WORKING_DIR/install_geoserver.log 2>&1
mkdir -p $DEPLOY_DIR/geoserver/data >> $WORKING_DIR/install_geoserver.log 2>&1
echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION"
fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE $CACHE_DIR_REMOTE_ISO/$GEOSERVER_SHELL_FILE
unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE >> $WORKING_DIR/install_geoserver_shell.log 2>&1
ln -sf $DEPLOY_DIR/gs-shell-0.2-SNAPSHOT $DEPLOY_DIR/gs-shell
make >> $WORKING_DIR/install_geoserver_shell.log 2>&1
make install >> $WORKING_DIR/install_geoserver_shell.log 2>&1
fi
if $INSTALL_ISOCHRONE_LOCAL; then
echo "Installing template project \"isochrone (local testing)\""
echo " - creating war using gradle from $TEMPLATE_DIR_ISOCHRONE"
$TEMPLATE_DIR_ISOCHRONE/gradlew -b $TEMPLATE_DIR_ISOCHRONE/build.gradle -c $TEMPLATE_DIR_ISOCHRONE/settings.gradle clean war >> $WORKING_DIR/install_isochrone_local.log 2>&1
unzip -o -d $TOMCAT_WEBAPP_DIR/localTesting $TEMPLATE_DIR_ISOCHRONE/build/libs/isochrone-*.war >> $WORKING_DIR/install_isochrone_local.log 2>&1
fi
if $INSTALL_ISOCHRONE_RELEASE; then
echo "Installing template project \"isochrone (release)\""
echo " - artifact: $NEXUS_RELEASE_ISOCHRONE_WEB"
fn_download $DOWNLOAD_DIR/isochrone.war $NEXUS_RELEASE_ISOCHRONE_WEB
cp $DOWNLOAD_DIR/isochrone.war $TOMCAT_WEBAPP_DIR/isochrone.war
unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war >> $WORKING_DIR/install_isochrone_release.log 2>&1
rm -f $TOMCAT_WEBAPP_DIR/isochrone.war >> $WORKING_DIR/install_isochrone_release.log 2>&1
fi
if $INSTALL_ISOCHRONE_SNAPSHOT; then
echo "Installing template project \"isochrone (testing)\""
echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE_WEB"
fn_download $DOWNLOAD_DIR/testing.war $NEXUS_SNAPSHOT_ISOCHRONE_WEB
cp $DOWNLOAD_DIR/testing.war $TOMCAT_WEBAPP_DIR/testing.war
unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war >> $WORKING_DIR/install_isochrone_snapshot.log 2>&1
rm -f $TOMCAT_WEBAPP_DIR/testing.war >> $WORKING_DIR/install_isochrone_snapshot.log 2>&1
fi
if $INSTALL_ISOCHRONE_DATAMODEL; then
echo "Installing \"$NEXUS_ARTIFACT_NAME_DATAMODEL\""
echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE_DATAMODEL"
fn_download $DOWNLOAD_DIR/$NEXUS_ARTIFACT_NAME_DATAMODEL.jar $NEXUS_SNAPSHOT_ISOCHRONE_DATAMODEL >> $WORKING_DIR/install_isochrone_datamodel.log 2>&1
cp $DOWNLOAD_DIR/$NEXUS_ARTIFACT_NAME_DATAMODEL.jar $DEPLOY_DIR/ >> $WORKING_DIR/install_isochrone_datamodel.log 2>&1
unzip -o -d "$DEPLOY_DIR/isochrone-datamodel" $DEPLOY_DIR/$NEXUS_ARTIFACT_NAME_DATAMODEL.jar >> $WORKING_DIR/install_isochrone_datamodel.log 2>&1
DATAMODEL_VERSION_STRING=$(grep $DEPLOY_DIR/isochrone-datamodel/builder.sh -e "^VERSION=\".*\"$")
DATAMODEL_VERSION_STRING=${DATAMODEL_VERSION_STRING#*\"}
DATAMODEL_VERSION_STRING=${DATAMODEL_VERSION_STRING%\"*}
mkdir -p "$DEPLOY_DIR/isochrone-datamodel/build/libs" >> $WORKING_DIR/install_isochrone_datamodel.log 2>&1
cp "$DEPLOY_DIR/isochrone-datamodel.jar" "$DEPLOY_DIR/isochrone-datamodel/build/libs/isochrone-datamodel-$DATAMODEL_VERSION_STRING-all.jar" >> $WORKING_DIR/install_isochrone_datamodel.log 2>&1
fi
if $INSTALL_ISOCHRONE_TOOLS; then
echo "Installing \"$NEXUS_ARTIFACT_NAME_TOOLS\""
echo " - artifact: $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS"
fn_download $DOWNLOAD_DIR/$NEXUS_ARTIFACT_NAME_TOOLS.jar $NEXUS_SNAPSHOT_ISOCHRONE_TOOLS >> $WORKING_DIR/install_isochrone_tools.log 2>&1
cp $DOWNLOAD_DIR/$NEXUS_ARTIFACT_NAME_TOOLS.jar $DEPLOY_DIR/ >> $WORKING_DIR/install_isochrone_tools.log 2>&1
fi
if $INSTALL_PROJECT_PSIPROBE; then
echo "Installing template project \"psi-probe\" $TEMPLATE_PSIPROBE_VERSION"
echo " - artifact: $TEMPLATE_PSIPROBE_DOWNLOAD_URL"
fn_download_newer $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE "$TEMPLATE_PSIPROBE_DOWNLOAD_URL"
unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$TEMPLATE_PSIPROBE_FILE probe.war
unzip -o -d $TOMCAT_WEBAPP_DIR/psiprobe $TOMCAT_WEBAPP_DIR/probe.war >> $WORKING_DIR/install_psiprobe.log 2>&1
rm -f $TOMCAT_WEBAPP_DIR/probe.war >> $WORKING_DIR/install_psiprobe.log 2>&1
fi
if $INSTALL_MAVEN; then
echo "Installing maven $MAVEN_VERSION"
mkdir -p $CACHE_DIR_LOCAL/maven
fn_download_newer $DOWNLOAD_DIR/$MAVEN_FILE "$MAVEN_DOWNLOAD_URL"
unzip -o -d $DEPLOY_DIR $DOWNLOAD_DIR/$MAVEN_FILE >> $WORKING_DIR/install_maven.log 2>&1
ln -sf $DEPLOY_DIR/apache-maven-$MAVEN_VERSION $DEPLOY_DIR/apache-maven
echo " - exporting maven options"
echo "export M2_HOME=\"$DEPLOY_DIR/apache-maven\"" >> /etc/profile.d/maven.sh
echo "export PATH=\"\${M2_HOME}/bin:\${PATH}\"" >> /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
echo " - configuring maven to use vagrant-cache plugin"
# yum -y install xmlstarlet >> $WORKING_DIR/install_xmlstarlet.log
# xmlstarlet edit --inplace --subnode "/_:settings" -t elem -n "localRepository" -v "$CACHE_DIR_LOCAL/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml
cp $SHARED_CONF_DIR/maven-settings.xml $DEPLOY_DIR/apache-maven/conf/settings.xml
fi
if $INSTALL_NEO4J; then
echo "Installing neo4j dependencies"
yum install -y lsof >> $WORKING_DIR/install_neo4j_deps.log 2>&1
echo "Installing neo4j $NEO4J_VERSION"
fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE "$NEO4J_DOWNLOAD_URL"
tar -xvf $DOWNLOAD_DIR/$NEO4J_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_neo4j.log 2>&1
ln -sf $DEPLOY_DIR/neo4j-community-$NEO4J_VERSION $DEPLOY_DIR/neo4j
echo " - enabling neo4j network access (without user)"
echo "org.neo4j.server.webserver.address=0.0.0.0" >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties
sed -i "s/dbms\.security\.auth\_enabled=true/dbms\.security\.auth\_enabled=false/" $DEPLOY_DIR/neo4j/conf/neo4-server.properties
echo " - creating systemd service"
cp "$SHARED_CONF_DIR/neo4j.service" "/etc/systemd/system/neo4j.service" >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties
systemctl daemon-reload >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties
fi
if $INSTALL_NEO4J_SPATIAL; then
echo "Installing neo4j-spatial $NEO4J_SPATIAL_VERSION"
git clone -q "$NEO4J_SPATIAL_GIT_URL" $DEPLOY_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION
ln -sf $DEPLOY_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION $DEPLOY_DIR/neo4j-spatial
cd $DEPLOY_DIR/neo4j-spatial
git checkout -q $NEO4J_SPATIAL_VERSION >> /dev/null 2>&1
echo " - copying neo4j-spatial into geoserver (from source)"
mvn clean install -DskipTests >> $WORKING_DIR/install_neo4j_spatial.log 2>&1
if $INSTALL_NEO4J; then
unzip -o -d $DEPLOY_DIR/neo4j/plugins $DEPLOY_DIR/neo4j-spatial/target/*server-plugin.zip >> $WORKING_DIR/install_neo4j_spatial.log 2>&1
fi
if $INSTALL_GEOSERVER; then
unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib $DEPLOY_DIR/neo4j-spatial/target/*server-plugin.zip >> $WORKING_DIR/install_neo4j_spatial.log 2>&1
fi
cd "$WORKING_DIR"
fi
if $INSTALL_OSMCONVERT; then
echo "Installing osmconvert dependencies"
yum -y install zlib-devel >> $WORKING_DIR/install_osmconvert_deps.log 2>&1
echo "Installing osmconvert"
mkdir -p $DEPLOY_DIR/osmconvert
fn_download_newer $DOWNLOAD_DIR/$OSMCONVERT_FILE "$OSMCONVERT_DOWNLOAD_URL"
cp "$DOWNLOAD_DIR/$OSMCONVERT_FILE" "$DEPLOY_DIR/osmconvert/$OSMCONVERT_FILE"
# Compiling osmconvert from source
cc -x c -lz -O3 -o "$DEPLOY_DIR/osmconvert/osmconvert" "$DEPLOY_DIR/osmconvert/osmconvert.c" >> $WORKING_DIR/install_osmconvert.log 2>&1
chmod a+x $DEPLOY_DIR/osmconvert/osmconvert
echo " - exporting osmconvert options"
echo "export OSMCONVERT_HOME=\"$DEPLOY_DIR/osmconvert\"" >> /etc/profile.d/osmconvert.sh
echo "export PATH=\"\${OSMCONVERT_HOME}:\${PATH}\"" >> /etc/profile.d/osmconvert.sh
source /etc/profile.d/osmconvert.sh
fi
if $INSTALL_OSMOSIS; then
echo "Installing osmosis $OSMOSIS_VERSION"
fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE "$OSMOSIS_DOWNLOAD_URL"
mkdir -p $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION
unzip -o -d $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION $DOWNLOAD_DIR/$OSMOSIS_FILE >> $WORKING_DIR/install_osmosis.log 2>&1
ln -sf $DEPLOY_DIR/osmosis-* $DEPLOY_DIR/osmosis
chmod a+x $DEPLOY_DIR/osmosis/bin/osmosis
echo " - exporting osmosis options"
echo "export OSMOSIS_HOME=\"$DEPLOY_DIR/osmosis\"" >> /etc/profile.d/osmosis.sh
echo "export PATH=\"\${OSMOSIS_HOME}/bin:\${PATH}\"" >> /etc/profile.d/osmosis.sh
source /etc/profile.d/osmosis.sh
fi
if $INSTALL_SPATIALITE; then
echo "Installing spatialite dependencies"
yum -y install sqlite-devel zlib-devel proj-devel geos-devel libxml2-devel >> $WORKING_DIR/install_spatialite_deps.log 2>&1
echo "Installing spatialite $SPATIALITE_VERSION (from source)"
fn_download_newer $DOWNLOAD_DIR/$SPATIALITE_FILE $SPATIALITE_URL
tar -xvf $DOWNLOAD_DIR/$SPATIALITE_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_spatialite.log 2>&1
ln -sf $DEPLOY_DIR/libspatialite* $DEPLOY_DIR/libspatialite
cd $DEPLOY_DIR/libspatialite
./configure --disable-freexl >> $WORKING_DIR/install_spatialite.log 2>&1
make >> $WORKING_DIR/install_spatialite.log 2>&1
make install-strip >> $WORKING_DIR/install_spatialite.log 2>&1
cd "$WORKING_DIR"
fi
if $INSTALL_SPATIALITE_ADMIN; then
echo "Installing phpLiteAdmin"
fn_download_newer $DOWNLOAD_DIR/phpliteadmin.zip $PHPLITEADMIN_URL
mkdir -p $DEPLOY_DIR/phpliteadmin
unzip -o -d $DEPLOY_DIR/phpliteadmin $DOWNLOAD_DIR/phpliteadmin.zip >> $WORKING_DIR/install_phpLiteAdmin.log 2>&1
ln -sf $DEPLOY_DIR/phpliteadmin /var/www/html/phpliteadmin
echo " - setting permissions"
chown -R apache:apache $DEPLOY_DIR/phpliteadmin
chown -R apache:apache /var/www/html/phpliteadmin
fi
if $INSTALL_GDAL; then
echo "Installing GDAL $GDAL_VERSION (from source; contains ogr2ogr)"
cd $DEPLOY_DIR
fn_download_newer $DOWNLOAD_DIR/$GDAL_FILE $GDAL_DOWNLOAD_URL
tar -xvf $DOWNLOAD_DIR/$GDAL_FILE -C $DEPLOY_DIR >> $WORKING_DIR/install_gdal.log 2>&1
ln -sf $DEPLOY_DIR/gdal* $DEPLOY_DIR/gdal
cd "$DEPLOY_DIR/gdal"
./configure --with-spatialite >> $WORKING_DIR/install_gdal.log 2>&1
make >> $WORKING_DIR/install_gdal.log 2>&1
make install >> $WORKING_DIR/install_gdal.log 2>&1
cd "$WORKING_DIR"
fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Installations performed"
echo " Preparing services ($(date +%H:%M:%S)):"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
if $INSTALL_POSTGRES; then
echo "Initializing postgresql database"
if [ -f "$PostgreSQL_ROOT/bin/postgresql$POSTGRESQL_SHORT_VERSION-setup" ]; then
rm -rf $POSTGRESQL_DATA_DIR
$PostgreSQL_ROOT/bin/postgresql$POSTGRESQL_SHORT_VERSION-setup initdb >> $WORKING_DIR/initialize_postgresql.log 2>&1
else
service $POSTGRESQL_SERVICE_NAME initdb >> $WORKING_DIR/initialize_postgresql.log 2>&1
fi
sleep 2
echo "Configuring postgresql-server (permissions, logging, ...)"
mkdir -p /var/log/postgresql
chown postgres:postgres -R /var/log/postgresql
cp "$SHARED_CONF_DIR/pg_hba.conf" "$POSTGRESQL_HBA_CONF"
cp "$SHARED_CONF_DIR/postgresql.conf" "$POSTGRESQL_GLOB_CONF"
fi
if $INSTALL_POSTGRES_ADMIN; then
echo "Configuring phpPgAdmin"
cp $SHARED_CONF_DIR/phpPgAdmin.conf /etc/httpd/conf.d/phpPgAdmin.conf
sed -i 's/\$conf\['\''servers'\''\]\[0\]\['\''host'\''\] = '\'''\''/\$conf\['\''servers'\''\]\[0\]\['\''host'\''\] = '\''localhost'\''/' /usr/share/phpPgAdmin/conf/config.inc.php
fi
if $INSTALL_NEO4J; then
echo "Initializing neo4j database"
$DEPLOY_DIR/neo4j/bin/neo4j -h -u $NEO4J_DB_USER install >> $WORKING_DIR/initialize_neo4j.log 2>&1
echo " - setting max open file limit for neo4j user"
echo "$NEO4J_DB_USER soft nofile 40000" >> /etc/security/limits.conf
echo "$NEO4J_DB_USER hard nofile 40000" >> /etc/security/limits.conf
echo "session required pam_limits.so" >> /etc/pam.d/su
ulimit -n 40000
fi
if $INSTALL_TOMCAT; then
echo "Configuring tomcat users"
groupadd -g 521 $TOMCAT_USER >> $WORKING_DIR/install_tomcat.log 2>&1
useradd -u 521 -g 521 -c "Tomcat Service Account" -d $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $TOMCAT_USER >> $WORKING_DIR/install_tomcat.log 2>&1
chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION >> $WORKING_DIR/install_tomcat.log 2>&1
chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1
cp $SHARED_CONF_DIR/tomcat-users.xml $DEPLOY_DIR/$TOMCAT_NAME/conf/tomcat-users.xml
sed -i "s/password=\"admin\"/password=\"$TOMCAT_PASSWORD\"/" $DEPLOY_DIR/$TOMCAT_NAME/conf/tomcat-users.xml
echo "Configuring tomcat default web.xml (enabling CORS filer)"
cp -f $SHARED_CONF_DIR/tomcat_web.xml $DEPLOY_DIR/$TOMCAT_NAME/conf/web.xml
echo "Configuring tomcat permissions"
if $INSTALL_GEOSERVER; then
chown -R $TOMCAT_USER:$TOMCAT_USER $TOMCAT_WEBAPP_DIR/geoserver
chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/geoserver
fi
echo "Configuring tomcat startup script"
cp $SHARED_CONF_DIR/tomcat_startscript.sh /etc/init.d/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1
chmod 755 /etc/init.d/$TOMCAT_NAME >> $WORKING_DIR/install_tomcat.log 2>&1
echo "Configuring tomcat webapps (removing unnecessary ones)"
rm -rf "$TOMCAT_WEBAPP_DIR/docs"
rm -rf "$TOMCAT_WEBAPP_DIR/examples"
rm -rf "$TOMCAT_WEBAPP_DIR/host-manager"
fi
if $INSTALL_POSTGIS && $INSTALL_GEOSERVER; then
echo "Configuring geoserver epsg projections"
mkdir -p $DEPLOY_DIR/geoserver/data/user_projections
echo "82344=`grep ^[^//,^#] /setup/conf/srid_82344_wkt.txt | paste -sd "" | sed 's/ \+ / /g'`" >> $DEPLOY_DIR/geoserver/data/user_projections/epsg.properties
chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/geoserver/data/user_projections
fi
if $INSTALL_SPATIALITE_ADMIN; then
echo "Configuring phpLiteAdmin"
cp $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.sample.php $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s/password = 'admin'/password = '${TOMCAT_PASSWORD}'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s/directory = '\.'/directory = false/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s/subdirectories = false/subdirectories = true/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s|'path'=> 'database1.sqlite'|'path'=> '${DATA_DIR}/isochrone.spatialite'|" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s/'name'=> 'Database1'/'name'=> 'Isochrone'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "s/language = 'en'/language = 'de'/" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "/'path'=> 'database2.sqlite'/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "/'name'=> 'Database 2'/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i ':a;N;$!ba;s/\tarray(/lineWillBeDeleted/2' $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i ':a;N;$!ba;s/\t),/lineWillBeDeleted/2' $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
sed -i "/lineWillBeDeleted/d" $DEPLOY_DIR/phpliteadmin/phpliteadmin.config.php
ln -sf $DEPLOY_DIR/phpliteadmin/phpliteadmin.php $DEPLOY_DIR/phpliteadmin/index.php
fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Services prepared"
echo " Starting services ($(date +%H:%M:%S)):"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
if $INSTALL_HTTPD; then
fn_service_start "httpd"
fi
if $INSTALL_POSTGRES; then
fn_service_start "$POSTGRESQL_SERVICE_NAME"
fi
if $INSTALL_NEO4J; then
fn_service_start "$NEO4J_SERVICE_NAME"
fi
if $INSTALL_TOMCAT; then
fn_service_start "$TOMCAT_NAME"
fi
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Services started"
# Prevent second provision (done by check at the beginning of this file)
touch /var/vagrant_provision
END=$(date +%s)
TOTAL=$(( $END - $START ))
printf ' Time to prepare the environment: %dh:%dm:%ds\n' $(($TOTAL/3600)) $(($TOTAL%3600/60)) $(($TOTAL%60))
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"