#! /bin/bash ########################### # This bootstrap script installs some build tools and the packages # neo4j, neo4j-spatial, httpd, postgresql, postgis, pgRouting, osmosis, osm2pgrouting # into a centos6/fedora19 environment. # It can be used in the context of a Vagrantfile to configure a vagrant box. # # Some data (from the road network of innsbruck) is also downloaded and # imported into the databases (neo4j and postgresql) # # After various installations, the databases, the httpd server, tomcat # (and therefor also geoserver, which is installed as war file) are started ########################### # Environment configuration ########################### if [ -f "/var/vagrant_provision" ]; then exit 0 fi IMPORT_OSMDATA=true IMPORT_OSMDATA_CACHED=true IMPORT_SCHEDULES=true INSTALL_HTTPD=true INSTALL_GEOSERVER=false INSTALL_NEO4J=false INSTALL_NEO4J_SPATIAL=false INSTALL_PGROUTING=true INSTALL_POSTGIS=true INSTALL_POSTGRES=true INSTALL_POSTGRES_ADMIN=true # IS_LOCAL_TEST_DEPLOY will prevent install of projects (can be set using command-line argument) # PsiProbe will always be installed if INSTALL_PROJECT_PSIPROBE is true (even when this is set to true) IS_LOCAL_TEST_DEPLOY=false # will install caniget2 sample project INSTALL_PROJECT_CANIGET2=false # will install isochrone from vagrant start directory (eclipse project) INSTALL_ISOCHRONE_LOCAL=false # will install latest isochrone release from nexus repository INSTALL_ISOCHRONE_RELEASE=true # will install latest isochrone snapshot from nexus repository INSTALL_ISOCHRONE_SNAPSHOT=true INSTALL_PROJECT_PSIPROBE=true PG_DB_NAME="isochrone" PG_DB_USER="@db_username@" PG_DB_PASSWORD="@db_password@" if [ ${PG_DB_USER:0:1} == "@" ]; then PG_DB_USER=$1 fi if [ ${PG_DB_PASSWORD:0:1} == "@" ]; then PG_DB_PASSWORD=$2 fi if [ -n "$3" ]; then if [ "$3" = "true" ]; then IS_LOCAL_TEST_DEPLOY=true fi fi ########################### # General configuration ########################### CACHE_DIR_LOCAL=/tmp/vagrant-cache CACHE_DIR_REMOTE=http://www.krismer.de/files/PhD DEPLOY_DIR=/opt DOWNLOAD_DIR=$CACHE_DIR_LOCAL/wget SHARED_CONF_DIR=/setup/conf SHARED_IMG_DIR=/setup/img CMAKE_VERSION=2.8.12.1 CMAKE_VERSION_MAIN=v2.8 CMAKE_FILE=cmake-$CMAKE_VERSION.tar.gz GEOSERVER_VERSION=2.5.2 GEOSERVER_FILE=geoserver-$GEOSERVER_VERSION-war.zip GEOSERVER_SHELL_VERSION=0.2-SNAPSHOT GEOSERVER_SHELL_FILE=gs-shell-$GEOSERVER_SHELL_VERSION-app.zip JAVA_VERSION=8u5 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.2.1 MAVEN_FILE=apache-maven-$MAVEN_VERSION-bin.zip NEO4J_DB_USER=neo4j NEO4J_VERSION=2.1.2 NEO4J_FILE=neo4j-community-$NEO4J_VERSION-unix.tar.gz NEO4J_SERVICE_NAME=neo4j-service NEO4J_SPATIAL_VERSION=0.13-neo4j-2.0.1 NEXUS_ARTIFACT_NAME=isochrone-web NEXUS_BASE_URL_DBIS=http://138.232.66.78/nexus NEXUS_BASE_URL_KRISMER=https://server.krismer.de/nexus NEXUS_BASE_URL=$NEXUS_BASE_URL_DBIS NEXUS_PUBLIC_REPO=isochrone #NEXUS_BASE_URL=$NEXUS_BASE_URL_KRISMER #NEXUS_PUBLIC_REPO=public NEXUS_RELEASE_ISOCHRONE=$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=RELEASE&p=war #NEXUS_RELEASE_ISOCHRONE=$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=0.2.2&p=war NEXUS_RELEASE_CANIGET2=https://server.krismer.de/nexus/service/local/artifact/maven/content?r=public&g=de.krismer&a=CanIGet2&v=0.1&p=war NEXUS_SNAPSHOT_ISOCHRONE=$NEXUS_BASE_URL/service/local/artifact/maven/content?r=$NEXUS_PUBLIC_REPO&g=at.uibk.dbis&a=$NEXUS_ARTIFACT_NAME&v=LATEST&p=war NEXUS_YUM_REPO=http://www.krismer.de/files/krismer.repo #OSM_BBOX_BZ="top=46.5200 left=11.3000 bottom=46.4500 right=11.3873" #OSM_BBOX_IBK="top=47.3592 left=11.3020 bottom=47.2108 right=11.4554" OSM_BBOX_BZ="${SHARED_CONF_DIR}/poly_bz.poly" OSM_BBOX_IBK="${SHARED_CONF_DIR}/poly_ibk.poly" OSM_BBOX_IT="${SHARED_CONF_DIR}/poly_it.poly" OSM_BBOX_SF="${SHARED_CONF_DIR}/poly_sf.poly" OSM_BBOX_ST="${SHARED_CONF_DIR}/poly_st.poly" #also referred to as poly_taa.poly OSM_FILE_AUSTRIA=europe/austria-140301.osm.pbf OSM_FILE_ITALY=europe/italy-140301.osm.pbf OSM_FILE_CALIFORNIA=north-america/us/california-140301.osm.pbf OSM_FILE_BZ_FILTERED=bozen-140301-filtered.osm OSM_FILE_IBK_FILTERED=innsbruck-140301-filtered.osm OSM_FILE_IT_FILTERED=italy-140301-filtered.osm OSM_FILE_SF_FILTERED=sanfrancisco-140301-filtered.osm OSM_FILE_ST_FILTERED=southtyrol-140301-filtered.osm OSM_KEYS="aerialway,highway,public_transport,railway,route" OSM2PGROUTING_VERSION=v2.0.0 OSM2PGROUTING_MAPPING_CONF=$DEPLOY_DIR/osm2pgrouting/mapconfig.xml OSMOSIS_VERSION=0.43.1 OSMOSIS_FILE=osmosis-$OSMOSIS_VERSION.zip POSTGIS_VERSION=2.1.3 POSTGRESQL_DATA_DIR=/var/lib/pgsql/9.3/data POSTGRESQL_HBA_CONF=$POSTGRESQL_DATA_DIR/pg_hba.conf POSTGRESQL_PKG_NAME=postgresql93 POSTGRESQL_REPO_RPM_32=http://yum.postgresql.org/9.3/fedora/fedora-20-i386/pgdg-fedora93-9.3-1.noarch.rpm POSTGRESQL_REPO_RPM_64=http://yum.postgresql.org/9.3/fedora/fedora-20-x86_64/pgdg-fedora93-9.3-1.noarch.rpm POSTGRESQL_SERVICE_NAME=postgresql-9.3 PGROUTING_VERSION=2.0.0 REPO_BASE_CONFIG=/etc/yum.repos.d/fedora-updates.repo REPO_RPMFORGE_CONFIG=/etc/yum.repos.d/rpmforge.repo REPO_RPMFORGE_URL_32=http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm REPO_RPMFORGE_URL_64=http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm TABLE_PREFIX_BZ=bz_ TABLE_PREFIX_IBK=ibk_ TABLE_PREFIX_IT=it_ TABLE_PREFIX_SF=sf_ TABLE_PREFIX_ST=st_ TEMPLATE_VERSION_PSIPROBE=2.3.3 TEMPLATE_FILE_PSIPROBE=probe-$TEMPLATE_VERSION_PSIPROBE.zip TEMPLATE_DIR_ISOCHRONE=/vagrant TOMCAT_VERSION=8.0.9 TOMCAT_FILE=apache-tomcat-$TOMCAT_VERSION.tar.gz TOMCAT_MEMORY_OPTS="-Xmx2048m -Xms512m -XX:MaxPermSize=512m" TOMCAT_NAME=tomcat TOMCAT_USER=tomcat TOPOLOGY_TOLERANCE=0.0005 ## Calculated variables ####################### INSTALL_JAVA=false INSTALL_MAVEN=false INSTALL_TOMCAT=false if $IS_LOCAL_TEST_DEPLOY; then INSTALL_PROJECT_CANIGET2=false INSTALL_ISOCHRONE_LOCAL=false INSTALL_ISOCHRONE_RELEASE=false INSTALL_ISOCHRONE_SNAPSHOT=false fi if $INSTALL_GEOSERVER || $INSTALL_PROJECT_CANIGET2 || $INSTALL_ISOCHRONE_LOCAL || $INSTALL_ISOCHRONE_RELEASE || $INSTALL_ISOCHRONE_SNAPSHOT || $INSTALL_PROJECT_PSIPROBE; then INSTALL_TOMCAT=true fi if $INSTALL_NEO4J_SPATIAL; then INSTALL_MAVEN=$IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED fi if $INSTALL_TOMCAT || $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then INSTALL_JAVA=true fi if $INSTALL_PGROUTING; then INSTALL_POSTGIS=true fi if $INSTALL_POSTGRES_ADMIN || $INSALL_POSTGIS; then INSTALL_POSTGRES=true fi DISTRI=$(cat /etc/issue | head -n 1 | cut -d " " -f 1) if [ $DISTRI == "CentOS" ]; then POSTGRESQL_REPO_RPM_32=http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpm POSTGRESQL_REPO_RPM_64=http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm REPO_BASE_CONFIG=/etc/yum.repos.d/CentOS-Base.repo elif [ $DISTRI != "Fedora" ]; then echo "Unsupported OS. Only CentOS and Fedora are supported!" exit 1; fi IS_64_BIT=false if [ "x86_64" == $(uname -m) ]; then IS_64_BIT=true fi if $IS_64_BIT; then POSTGRESQL_REPO_RPM=$POSTGRESQL_REPO_RPM_64 REPO_RPMFORGE_URL=$REPO_RPMFORGE_URL_64 JAVA_FILE=$JAVA_FILE_64 else POSTGRESQL_REPO_RPM=$POSTGRESQL_REPO_RPM_32 REPO_RPMFORGE_URL=$REPO_RPMFORGE_URL_32 JAVA_FILE=$JAVA_FILE_32 fi START=$(date +%s) TOMCAT_WEBAPP_DIR=$DEPLOY_DIR/$TOMCAT_NAME/webapps WORKING_DIR=`pwd` ## Functions ############ fn_download() { FILE="$1" URL="$2" if wget --no-check-certificate -q -O /dev/null "$URL"; then wget --no-check-certificate -q -O "$FILE" "$URL" fi } # "wget -N" does not work with "-O" option... so we use a workaround here fn_download_newer() { FILE="$1" URL="$2" if [ ! -f "$FILE" ]; then if wget --no-check-certificate -q -O /dev/null "$URL"; then wget --no-check-certificate -q -O "$FILE" "$URL" fi fi } fn_import_data() { NAME="$1" OSM_FILE="$2" OSM_FILE_FILTERED="$3" BOUNDING="$4" SCHEDULE_FILE="$5" TABLE_PREFIX="$6" echo "Importing data for region of $NAME" if $IMPORT_OSMDATA_CACHED; then echo " - downloading cached OpenStreetMap file" fn_download_newer $DOWNLOAD_DIR/$OSM_FILE_FILTERED $CACHE_DIR_REMOTE/$OSM_FILE_FILTERED cp $DOWNLOAD_DIR/$OSM_FILE_FILTERED $DEPLOY_DIR/$OSM_FILE_FILTERED > /dev/null 2>&1 fi if [ ! -f $DEPLOY_DIR/$OSM_FILE_FILTERED ]; then echo " - downloading OpenStreetMap file" OSM_FILENAME=$DOWNLOAD_DIR/${OSM_FILE##*/} fn_download_newer $OSM_FILENAME http://download.geofabrik.de/$OSM_FILE echo " - filtering OpenStreetMap data" if [[ "$BOUNDING" == *.poly ]]; then $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-polygon file="$BOUNDING" --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> initialize_osm_data.sh 2>&1 else $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$OSM_FILENAME" --bounding-box $BOUNDING --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> initialize_osm_data.sh 2>&1 fi fi if $INSTALL_POSTGIS && $IMPORT_SCHEDULES; then if [ -n "$SCHEDULE_FILE" ]; then echo " - downloading schedule" fn_download_newer $DOWNLOAD_DIR/$SCHEDULE_FILE $CACHE_DIR_REMOTE/$SCHEDULE_FILE cp $DOWNLOAD_DIR/$SCHEDULE_FILE $DEPLOY_DIR/$SCHEDULE_FILE > /dev/null 2>&1 echo " - importing schedule into postgis database" gunzip -c $DEPLOY_DIR/$SCHEDULE_FILE | PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost "$PG_DB_NAME" >> $WORKING_DIR/import_schedule.log 2>&1 echo " - fixing schedule permissions" tables=`PGPASSWORD="$PG_DB_PASSWORD" psql -qAt -U "$PG_DB_USER" -h localhost -c "SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tableowner = 'postgres';" "$PG_DB_NAME"` for tbl in $tables ; do PGPASSWORD="$PG_DB_PASSWORD" psql -qAt -U "$PG_DB_USER" -h localhost -c "ALTER TABLE $tbl OWNER TO $PG_DB_USER" "$PG_DB_NAME"; done fi fi if $INSTALL_PGROUTING; then echo " - importing filtered OpenStreetMap data into pgRouting" $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_FILTERED" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX >> import_osm2pgrouting.log 2>&1 echo " - creating pgRouting topology" PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "SELECT pgr_createTopology('${TABLE_PREFIX}ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_NEO4J_SPATIAL; then echo " - importing filtered OpenStreetMap data into neo4j-spatial" cd $DEPLOY_DIR/neo4j-spatial mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_FILTERED" >> $WORKING_DIR/import_osm2neo4j.log 2>&1 cd $WORKING_DIR fi } ## Start of environment preparation ################################### echo "" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Bootstrapping the VM:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" if $IS_LOCAL_TEST_DEPLOY; then echo "Starting in local test deploy mode"; fi if $IMPORT_SCHEDULES && ! $IMPORT_OSMDATA && ! $IMPORT_OSMDATA_CACHED; then echo "Warning: Schedules will not be imported, since no data from OSM is imported!" IMPORT_SCHEDULES=false 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 9.3"; fi if $INSTALL_POSTGIS; then echo " - postgis 2"; fi if $INSTALL_PGROUTING; then echo " - pgRouting $PGROUTING_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 $IMPORT_OSMDATA; then echo " - osmosis $OSMOSIS_VERSION"; fi if $IMPORT_OSMDATA_CACHED; then echo "Importing cached data from OSM (if possible)"; elif $IMPORT_OSMDATA; then echo "Importing data from OSM"; fi if $IMPORT_SCHEDULES; then echo "Importing schedules"; fi if $INSTALL_PROJECT_CANIGET2; then echo "Importing project \"CanIGet2\""; 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_PROJECT_PSIPROBE; then echo "Importing project \"psi-probe\""; fi echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Performing installations:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" # Are we punching above our weight? if [ "$EUID" -ne "0" ]; then echo '- The bootstrap script must be run as root!' exit 1 fi cd $WORKING_DIR mkdir -p $DOWNLOAD_DIR echo "Configuring timezone" cp /usr/share/zoneinfo/Europe/Vienna /etc/localtime > setup_timezone.log 2>&1 echo "Installing utils (gcc, git, ...) with yum repository version" yum -y install gcc gcc-c++ git iptables-services nano nmap sed tar unzip wget > insall_utils.log 2>&1 #echo "Installing krismer repository" #fn_download_newer $DOWNLOAD_DIR/krismer.repo $NEXUS_YUM_REPO #cp $DOWNLOAD_DIR/krismer.repo /etc/yum.repos.d > install_krismer_repo.log 2>&1 if $INSTALL_POSTGRES; then if [ $DISTRI == "CentOS" ]; then sed -i 's/\[base\]/\[base\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG sed -i 's/\[updates\]/\[updates\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG else sed -i 's/\[fedora\]/\[fedora\]\nexclude=postgresql\*/' $REPO_BASE_CONFIG fi echo "Installing postgresql-9.3 repository" fn_download $DOWNLOAD_DIR/postgresql-repo.rpm $POSTGRESQL_REPO_RPM yum -y localinstall $DOWNLOAD_DIR/postgresql-repo.rpm > install_postgresql_repo.log 2>&1 echo "Installing epel repository" fn_download $DOWNLOAD_DIR/epel-repo.rpm http://fedora.aau.at/epel/6/i386/epel-release-6-8.noarch.rpm yum -y localinstall $DOWNLOAD_DIR/epel-repo.rpm > install_epel_repo.log 2>&1 fi echo "Stopping iptables and SELinux" service iptables stop > stop_iptables.log 2>&1 if [ $(getenforce) == "Enforcing" ]; then setenforce 0 > stop_selinux.log 2>&1 fi if $INSTALL_HTTPD; then echo "Installing httpd server" yum -y install httpd > install_httpd.log 2>&1 fi if $INSTALL_POSTGRES; then echo "Installing $POSTGRESQL_PKG_NAME" yum -y install $POSTGRESQL_PKG_NAME $POSTGRESQL_PKG_NAME-server $POSTGRESQL_PKG_NAME-contrib > install_postgresql.log 2>&1 echo "export PostgreSQL_ROOT=/usr/pgsql-9.3" > /etc/profile.d/postgresql.sh source /etc/profile.d/postgresql.sh fi if $INSTALL_POSTGIS; then # echo "Installing postgis dependencies" # yum -y install gdal-devel geos-devel json-c-devel libxml2-devel proj-devel > install_postgis_deps.log 2>&1 # echo "Installing postgis $POSTGIS_VERSION from source" # git clone -q https://github.com/postgis/postgis.git $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 echo "Installing $POSTGRESQL_PKG_NAME from repository" yum -y install postgis2_93 > install_postgis.log 2>&1 fi if $INSTALL_POSTGRES_ADMIN; then echo "Installing phpPgAdmin" yum -y install phpPgAdmin > install_phpPgAdmin.log 2>&1 fi if $INSTALL_PGROUTING; then # echo "Installing cmake $CMAKE_VERSION from source" # fn_download_newer $DOWNLOAD_DIR/$CMAKE_FILE http://www.cmake.org/files/$CMAKE_VERSION_MAIN/$CMAKE_FILE # cp $DOWNLOAD_DIR/$CMAKE_FILE $DEPLOY_DIR/$CMAKE_FILE # tar -xvzf $DEPLOY_DIR/$CMAKE_FILE -C $DEPLOY_DIR > install_cmake.log 2>&1 # cd $DEPLOY_DIR/cmake* # ./bootstrap >> install_cmake.log 2>&1 # make >> install_cmake.log 2>&1 # make install >> install_cmake.log 2>&1 # cd $WORKSPACE_DIR echo "Installing rpmForge repository" fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm $REPO_RPMFORGE_URL yum -y localinstall $DOWNLOAD_DIR/rpmforge-repo.rpm > install_rpmforge_repo.log 2>&1 sed -i 's/enabled = 1/enabled = 0/' $REPO_RPMFORGE_CONFIG echo "Installing cmake from repository" yum -y --enablerepo=rpmforge-extras install cmake > install_cmake.log 2>&1 echo "Installing pgRouting dependencies" yum -y install $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs boost-devel postgis2_93-devel > install_pgRouting_deps.log 2>&1 # echo "Installing CGAL 4.3" # fn_download_newer $DOWNLOAD_DIR/CGAL-4.3.zip https://gforge.inria.fr/frs/download.php/32996/CGAL-4.3.zip # cp $DOWNLOAD_DIR/CGAL-4.3.zip $DEPLOY_DIR/CGAL-4.3.zip # unzip -o -d $DEPLOY_DIR $DEPLOY_DIR/CGAL-4.3.zip > install_cgal.log 2>&1 # cd $DEPLOY_DIR/CGAL-4.3 # cmake . >> install_cgal.log 2>&1 # make >> install_cgal.log 2>&1 # make install >> install_cgal.log 2>&1 # cd $WORKING_DIR echo "Installing pgRouting $PGROUTING_VERSION" git clone -q https://github.com/pgRouting/pgrouting.git $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION ln -sf $DEPLOY_DIR/pgRouting-$PGROUTING_VERSION $DEPLOY_DIR/pgRouting cd $DEPLOY_DIR/pgRouting git checkout -q pgrouting-$PGROUTING_VERSION > /dev/null 2>&1 mkdir build cd build # cmake -DWITH_DD=ON -DBoost_DIR:PATH=/usr/lib64/boost -DPOSTGRESQL_EXECUTABLE:FILEPATH="$PostgreSQL_ROOT"/bin/postgres -DPOSTGRESQL_PG_CONFIG:FILEPATH="$PostgreSQL_ROOT"/bin/pg_config .. > $WORKING_DIR/install_pgRouting.log 2>&1 cmake -DWITH_DD=OFF -DBoost_DIR:PATH=/usr/lib64/boost -DPOSTGRESQL_EXECUTABLE:FILEPATH="$PostgreSQL_ROOT"/bin/postgres -DPOSTGRESQL_PG_CONFIG:FILEPATH="$PostgreSQL_ROOT"/bin/pg_config .. > $WORKING_DIR/install_pgRouting.log 2>&1 make >> $WORKING_DIR/install_pgRouting.log 2>&1 make install >> $WORKING_DIR/install_pgRouting.log 2>&1 cd $WORKING_DIR fi if $INSTALL_JAVA; then echo "Installing java (oracle jdk-$JAVA_VERSION)" fn_download_newer $DOWNLOAD_DIR/$JAVA_FILE $CACHE_DIR_REMOTE/$JAVA_FILE yum -y localinstall $DOWNLOAD_DIR/$JAVA_FILE > install_java.log 2>&1 ln -sf /usr/java/latest $DEPLOY_DIR/jdk > setup_java.log 2>&1 ln -sf /usr/java/latest/jre $DEPLOY_DIR/jre > setup_java.log 2>&1 echo " - setting alternatives for java" alternatives --install /usr/bin/java java $DEPLOY_DIR/jre/bin/java 200000 >> setup_java.log 2>&1 alternatives --install /usr/bin/javaws javaws $DEPLOY_DIR/jre/bin/javaws 200000 >> setup_java.log 2>&1 alternatives --set java $DEPLOY_DIR/jre/bin/java >> setup_java.log 2>&1 alternatives --install /usr/bin/javac javac $DEPLOY_DIR/jdk/bin/javac 200000 >> setup_java.log 2>&1 alternatives --install /usr/bin/jar jar $DEPLOY_DIR/jdk/bin/jar 200000 >> setup_java.log 2>&1 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/$JAVA_CRYPTO_FILE unzip -j -u $DOWNLOAD_DIR/$JAVA_CRYPTO_FILE -d $DEPLOY_DIR/jre/lib/security >> 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 > install_tomcat.log 2>&1 # ln -sf /usr/share/$TOMCAT_NAME $DEPLOY_DIR/$TOMCAT_NAME fn_download_newer $DOWNLOAD_DIR/$TOMCAT_FILE http://tweedo.com/mirror/apache/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/$TOMCAT_FILE cp $DOWNLOAD_DIR/$TOMCAT_FILE $DEPLOY_DIR/$TOMCAT_FILE tar -xvzf $DEPLOY_DIR/$TOMCAT_FILE -C $DEPLOY_DIR > install_tomcat.log 2>&1 rm -f $DEPLOY_DIR/$TOMCAT_FILE >> install_tomcat.log 2>&1 ln -sf $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $DEPLOY_DIR/$TOMCAT_NAME >> install_tomcat.log 2>&1 fi if $INSTALL_GEOSERVER; then echo "Installing geoserver $GEOSERVER_VERSION" fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE unzip -o -d $TOMCAT_WEBAPP_DIR $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war > install_geoserver.log 2>&1 echo "Installing geoserver web archive into tomcat" mkdir -p $TOMCAT_WEBAPP_DIR/geoserver unzip -o -d $TOMCAT_WEBAPP_DIR/geoserver $TOMCAT_WEBAPP_DIR/geoserver.war >> install_geoserver.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/geoserver.war >> install_geoserver.log 2>&1 echo "Installing geoserver data directory" # mkdir -p $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1 # mv $TOMCAT_WEBAPP_DIR/geoserver/data $DEPLOY_DIR/geoserver >> install_geoserver.log 2>&1 mkdir -p $DEPLOY_DIR/geoserver/data >> install_geoserver.log 2>&1 echo "export CATALINA_OPTS=\"-Djava.awt.headless=true $TOMCAT_MEMORY_OPTS -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data\"" > /etc/profile.d/catalina.sh source /etc/profile.d/catalina.sh echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION" fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE $CACHE_DIR_REMOTE/$GEOSERVER_SHELL_FILE unzip $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE -d $DEPLOY_DIR > install_geoserver_shell.log 2>&1 ln -sf $DEPLOY_DIR/gs-shell-0.2-SNAPSHOT $DEPLOY_DIR/gs-shell make >> install_geoserver_shell.log 2>&1 make install >> 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 > install_isochrone_local.log 2>&1 unzip -o -d $TOMCAT_WEBAPP_DIR/localTesting $TEMPLATE_DIR_ISOCHRONE/build/libs/isochrone-*.war >> install_isochrone_local.log 2>&1 fi if $INSTALL_ISOCHRONE_RELEASE; then echo "Installing template project \"isochrone (release)\"" echo " - artifact: $NEXUS_RELEASE_ISOCHRONE" # we do not save this file in download dir (we do not want caching for isochrone.war) fn_download $DOWNLOAD_DIR/isochrone.war $NEXUS_RELEASE_ISOCHRONE cp $DOWNLOAD_DIR/isochrone.war $TOMCAT_WEBAPP_DIR/isochrone.war unzip -o -d $TOMCAT_WEBAPP_DIR/isochrone $TOMCAT_WEBAPP_DIR/isochrone.war > install_isochrone_release.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/isochrone.war >> install_isochrone_release.log 2>&1 fi if $INSTALL_ISOCHRONE_SNAPSHOT; then echo "Installing template project \"isochrone (testing)\"" echo " - artifact: $NEXUS_RELEASE_ISOCHRONE" # we do not save this file in download dir (we do not want caching for testing.war) fn_download $DOWNLOAD_DIR/testing.war $NEXUS_SNAPSHOT_ISOCHRONE cp $DOWNLOAD_DIR/testing.war $TOMCAT_WEBAPP_DIR/testing.war unzip -o -d $TOMCAT_WEBAPP_DIR/testing $TOMCAT_WEBAPP_DIR/testing.war > install_isochrone_snapshot.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/testing.war >> install_isochrone_snapshot.log 2>&1 fi if $INSTALL_PROJECT_CANIGET2; then echo "Installing template project \"CanIGet2\"" echo " - artifact: $NEXUS_RELEASE_CANIGET2" fn_download_newer $DOWNLOAD_DIR/caniget2.war $NEXUS_RELEASE_CANIGET2 cp $DOWNLOAD_DIR/caniget2.war $TOMCAT_WEBAPP_DIR unzip -o -d $TOMCAT_WEBAPP_DIR/caniget2 $TOMCAT_WEBAPP_DIR/caniget2.war > install_caniget2.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/caniget2.war >> install_caniget2.log 2>&1 fi if $INSTALL_PROJECT_PSIPROBE; then echo "Installing template project \"psi-probe\"" echo " - artifact: https://psi-probe.googlecode.com/files/$TEMPLATE_FILE_PSIPROBE" fn_download_newer $DOWNLOAD_DIR/$TEMPLATE_FILE_PSIPROBE https://psi-probe.googlecode.com/files/$TEMPLATE_FILE_PSIPROBE unzip $DOWNLOAD_DIR/$TEMPLATE_FILE_PSIPROBE probe.war -d $TOMCAT_WEBAPP_DIR unzip -o -d $TOMCAT_WEBAPP_DIR/psiprobe $TOMCAT_WEBAPP_DIR/probe.war > install_psiprobe.log 2>&1 rm -f $TOMCAT_WEBAPP_DIR/probe.war >> 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 http://tweedo.com/mirror/apache/maven/maven-3/3.1.1/binaries/$MAVEN_FILE unzip -o $DOWNLOAD_DIR/$MAVEN_FILE -d $DEPLOY_DIR > install_maven.log 2>&1 ln -sf $DEPLOY_DIR/apache-maven-$MAVEN_VERSION $DEPLOY_DIR/apache-maven 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 >> 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 > install_neo4j_deps.log 2>&1 echo "Installing neo4j $NEO4J_VERSION" fn_download_newer $DOWNLOAD_DIR/$NEO4J_FILE http://dist.neo4j.org/$NEO4J_FILE tar -xvzf $DOWNLOAD_DIR/$NEO4J_FILE -C $DEPLOY_DIR > install_neo4j.log 2>&1 ln -sf $DEPLOY_DIR/neo4j-community-$NEO4J_VERSION $DEPLOY_DIR/neo4j echo "org.neo4j.server.webserver.address=0.0.0.0" >> $DEPLOY_DIR/neo4j/conf/neo4j-server.properties fi if $INSTALL_NEO4J_SPATIAL; then echo "Installing neo4j-spatial $NEO4J_SPATIAL_VERSION" git clone -q https://github.com/neo4j/spatial.git $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 if $INSTALL_GEOSERVER; then if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then # We need to compile the source when importing data, so that the main class gets compiled echo "Installing neo4j-spatial into geoserver from source" mvn clean install -DskipTests > $WORKING_DIR/install_neo4j_spatial.log 2>&1 unzip -o $DEPLOY_DIR/neo4j-spatial/target/*server-plugin.zip -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1 else echo "Installing neo4j-spatial into geoserver from binary" fn_download_newer $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip http://dist.neo4j.org.s3.amazonaws.com/spatial/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip unzip -o $DOWNLOAD_DIR/neo4j-spatial-$NEO4J_SPATIAL_VERSION-server-plugin.zip -d $TOMCAT_WEBAPP_DIR/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1 fi fi cd $WORKING_DIR fi if $IMPORT_OSMDATA; then echo "Installing osmosis $OSMOSIS_VERSION" fn_download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE mkdir -p $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION unzip -o $DOWNLOAD_DIR/$OSMOSIS_FILE -d $DEPLOY_DIR/osmosis-$OSMOSIS_VERSION > install_osmosis.log 2>&1 ln -sf $DEPLOY_DIR/osmosis-* $DEPLOY_DIR/osmosis chmod a+x $DEPLOY_DIR/osmosis/bin/osmosis fi if ( $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED ) && $INSTALL_PGROUTING; then echo "Installing osm2pgrouting dependencies" yum install -y expat-devel boost-devel > install_osm2pgrouting_deps.log 2>&1 echo "Installing osm2pgrouting $OSM2PGROUTING_VERSION" git clone -q https://github.com/pgRouting/osm2pgrouting.git $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION ln -sf $DEPLOY_DIR/osm2pgrouting-$OSM2PGROUTING_VERSION $DEPLOY_DIR/osm2pgrouting cd $DEPLOY_DIR/osm2pgrouting git checkout -q $OSM2PGROUTING_VERSION > /dev/null 2>&1 cmake -H. -Bbuild > $WORKING_DIR/install_osm2pgrouting.log 2>&1 cd build/ make >> $WORKING_DIR/install_osm2pgrouting.log 2>&1 make install >> $WORKING_DIR/install_osm2pgrouting.log 2>&1 cd $WORKING_DIR fi echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Installations done!" echo " Preparing services" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" if $INSTALL_POSTGRES; then echo "Initialize postgresql database" service $POSTGRESQL_SERVICE_NAME initdb > initialize_postgresql.log 2>&1 sleep 2 echo "Configuring and starting postgresql-server" cp $SHARED_CONF_DIR/pg_hba.conf $POSTGRESQL_HBA_CONF echo "listen_addresses = '*'" >> $POSTGRESQL_DATA_DIR/postgresql.conf echo "port = 5432" >> $POSTGRESQL_DATA_DIR/postgresql.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 "Initialize neo4j database" $DEPLOY_DIR/neo4j/bin/neo4j -h -u $NEO4J_DB_USER install > initialize_neo4j.log 2>&1 # Configuring max open file limit for user "neo4j" 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 >> install_tomcat.log 2>&1 useradd -u 521 -g 521 -c "Tomcat Service Account" -d $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION $TOMCAT_USER >> install_tomcat.log 2>&1 chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/apache-tomcat-$TOMCAT_VERSION >> install_tomcat.log 2>&1 chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/$TOMCAT_NAME >> 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=\"$PG_DB_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 >> install_tomcat.log 2>&1 chmod 755 /etc/init.d/$TOMCAT_NAME >> install_tomcat.log 2>&1 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 echo "Starting services" if $INSTALL_HTTPD; then service httpd start > start_httpd.log 2>&1 chkconfig httpd on >> start_httpd.log 2>&1 sleep 2 fi if $INSTALL_POSTGRES; then service $POSTGRESQL_SERVICE_NAME start > start_pg.log 2>&1 chkconfig $POSTGRESQL_SERVICE_NAME on >> start_pg.log 2>&1 sleep 2 fi if $INSTALL_NEO4J; then service $NEO4J_SERVICE_NAME start > start_neo4j.log 2>&1 chkconfig $NEO4J_SERVICE_NAME on >> start_neo4j.log 2>&1 sleep 2 fi if $INSTALL_TOMCAT; then service $TOMCAT_NAME start > start_tomcat.log 2>&1 chkconfig $TOMCAT_NAME on >> start_tomcat.log 2>&1 sleep 2 fi if $INSTALL_POSTGRES; then echo "Creating postgresql database $PG_DB_NAME" sudo -u "postgres" psql -d template1 -c "CREATE DATABASE \"$PG_DB_NAME\";" > $WORKING_DIR/setup_database.log 2>&1 sudo -u "postgres" psql -d "$PG_DB_NAME" -c "CREATE USER \"$PG_DB_USER\" WITH PASSWORD '$PG_DB_PASSWORD';" >> $WORKING_DIR/setup_database.log 2>&1 sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER DATABASE \"$PG_DB_NAME\" OWNER TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 sudo -u "postgres" psql -d "$PG_DB_NAME" -c "GRANT ALL PRIVILEGES ON DATABASE \"$PG_DB_NAME\" TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER SCHEMA public OWNER TO \"$PG_DB_USER\";" >> $WORKING_DIR/setup_database.log 2>&1 sudo -u "postgres" psql -d "$PG_DB_NAME" -c "ALTER ROLE \"$PG_DB_USER\" SUPERUSER;" >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_POSTGIS; then PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "CREATE EXTENSION postgis;" >> $WORKING_DIR/setup_database.log 2>&1 PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -f $SHARED_CONF_DIR/pg_procedures.sql >> $WORKING_DIR/setup_database.log 2>&1 PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -f $SHARED_CONF_DIR/srid_82344_insert.sql >> $WORKING_DIR/setup_database.log 2>&1 fi if $INSTALL_PGROUTING; then PGPASSWORD="$PG_DB_PASSWORD" psql -U "$PG_DB_USER" -h localhost -d "$PG_DB_NAME" -c "CREATE EXTENSION pgRouting;" >> $WORKING_DIR/setup_database.log 2>&1 fi echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Services prepared!" if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then echo " Importing data" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" fn_import_data "Bolzen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ_FILTERED" "$OSM_BBOX_BZ" "bz_export.sql.gz" $TABLE_PREFIX_BZ fn_import_data "Innsbruck" "$OSM_FILE_AUSTRIA" "$OSM_FILE_IBK_FILTERED" "$OSM_BBOX_IBK" "" $TABLE_PREFIX_IBK if ! $IS_LOCAL_TEST_DEPLOY; then # fn_import_data "Italy" "$OSM_FILE_ITALY" "$OSM_FILE_IT_FILTERED" "$OSM_BBOX_IT" "it_export.sql.gz" $TABLE_PREFIX_IT fn_import_data "San Francisco" "$OSM_FILE_CALIFORNIA" "$OSM_FILE_SF_FILTERED" "$OSM_BBOX_SF" "sf_export.sql.gz" $TABLE_PREFIX_SF # fn_import_data "Alto Adige" "$OSM_FILE_ITALY" "$OSM_FILE_ST_FILTERED" "$OSM_BBOX_ST" "st_export.sql.gz" $TABLE_PREFIX_ST fi if $INSTALL_GEOSERVER; then if $INSTALL_NEO4J_SPATIAL; then echo "Configuring neo4j data permissions for geoserver" chown -R $TOMCAT_USER:$TOMCAT_USER $DEPLOY_DIR/neo4j/data/graph.db fi echo "Configuring geoserver $GEOSERVER_VERSION using geoserver-shell $GEOSERVER_SHELL_VERSION" sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_ws.gs > setup_geoserver_workspace.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_styles.gs > setup_geoserver_styles.log 2>&1 cp $SHARED_IMG_DIR/* $DEPLOY_DIR/geoserver/data/styles >> setup_geoserver_styles.log 2>&1 if $INSTALL_NEO4J_SPATIAL; then sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ds.gs > setup_geoserver_neo4j.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft_bz.gs >> setup_geoserver_neo4j.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft_ibk.gs >> setup_geoserver_neo4j.log 2>&1 if ! $IS_LOCAL_TEST_DEPLOY; then # sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft_it.gs >> setup_geoserver_neo4j.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft_sf.gs >> setup_geoserver_neo4j.log 2>&1 # sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft_st.gs >> setup_geoserver_neo4j.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_neo4j_ft.gs >> setup_geoserver_neo4j.log 2>&1 fi fi if $INSTALL_POSTGIS; then # copy geoserver_setup_postgis_ds and replace username/password cp $SHARED_CONF_DIR/geoserver_setup_postgis_ds.gs $WORKING_DIR/geoserver_setup_postgis_ds.gs sed -i "s/@db_username@/$PG_DB_USER/" $WORKING_DIR/geoserver_setup_postgis_ds.gs sed -i "s/@db_password@/$PG_DB_PASSWORD/" $WORKING_DIR/geoserver_setup_postgis_ds.gs sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $WORKING_DIR/geoserver_setup_postgis_ds.gs > setup_geoserver_postgis.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft_bz.gs >> setup_geoserver_postgis.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft_ibk.gs >> setup_geoserver_postgis.log 2>&1 if ! $IS_LOCAL_TEST_DEPLOY; then # sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft_it.gs >> setup_geoserver_postgis.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft_sf.gs >> setup_geoserver_postgis.log 2>&1 # sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft_st.gs >> setup_geoserver_postgis.log 2>&1 sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_CONF_DIR/geoserver_setup_postgis_ft.gs >> setup_geoserver_postgis.log 2>&1 fi fi fi fi # Prevent second provision (done by check at the beginning of this file) touch /var/vagrant_provision END=$(date +%s) TOTAL=$(( $END - $START )) echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " All preparations done... box can now be used" echo " Bootstrapping time: $TOTAL seconds" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"