diff --git a/etc/vagrant/bootstrap.sh b/etc/vagrant/bootstrap.sh index 853c586e002abeaacd331a67e82a4557fa3aa97b..0828cef0113080a12a9f3a52d2dfe21a13e08f96 100644 --- a/etc/vagrant/bootstrap.sh +++ b/etc/vagrant/bootstrap.sh @@ -14,8 +14,9 @@ # Environment configuration ########################### -IMPORT_DATA=true -IMPORT_DATA_CACHED=true +IMPORT_OSMDATA=true +IMPORT_OSMDATA_CACHED=true +IMPORT_SCHEDULES=true INSTALL_HTTPD=true INSTALL_GEOSERVER=true INSTALL_NEO4J=false @@ -34,10 +35,11 @@ PG_DB_PASSWORD="secretPhdPassword#2013!" # General configuration ########################### -CACHE_DIR=/tmp/vagrant-cache -SHARED_DIR=/vagrant -DOWNLOAD_DIR=$CACHE_DIR/wget +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_DIR=/vagrant CMAKE_VERSION=2.8.12.1 CMAKE_VERSION_MAIN=v2.8 @@ -90,10 +92,10 @@ INSTALL_MAVEN=false START=$(date +%s) WORKING_DIR=`pwd` -if $INSTALL_NEO4J_SPATIAL && $IMPORT_DATA; then - INSTALL_MAVEN=true +if $INSTALL_NEO4J_SPATIAL; then + INSTALL_MAVEN=$IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED fi -if $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_DATA; then +if $INSTALL_GEOSERVER || $INSTALL_NEO4J || $INSTALL_NEO4J_SPATIAL || $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then INSTALL_JAVA=true fi if $INSTALL_PGROUTING; then @@ -118,7 +120,7 @@ fi ############ # "wget -N" does not work with "-O" option... so we use a workaround here -download_newer() +fn_download_newer() { FILE=$1 URL=$2 @@ -130,6 +132,57 @@ download_newer() fi } +fn_import_data() +{ + NAME=$1 + OSM_FILE=$2 + OSM_FILE_FILTERED=$3 + BBOX=$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" + fn_download_newer $DOWNLOAD_DIR/$OSM_FILE http://download.geofabrik.de/europe/$OSM_FILE + + echo " - filtering OpenStreetMap data" + $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE" --bounding-box $BBOX --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_FILTERED" >> initialize_osm_data.sh 2>&1 + 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 | sudo -u postgres psql $PG_DB_NAME >> $WORKING_DIR/import_schedule.log 2>&1 + 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" + sudo -u postgres psql -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 ################################### @@ -137,7 +190,11 @@ echo "" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " Bootstrapping the VM:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo "Installing the following:" +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 @@ -148,8 +205,11 @@ if $INSTALL_POSTGIS; then echo " - postgis 2"; fi if $INSTALL_PGROUTING; then echo " - pgRouting $PGROUTING_VERSION"; fi if $INSTALL_GEOSERVER; then echo " - tomcat $TOMCAT_VERSION"; fi if $INSTALL_POSTGRES_ADMIN; then echo " - phpPgAdmin"; fi -if $IMPORT_DATA; then echo " - osmosis $OSMOSIS_VERSION"; fi -if $IMPORT_DATA_CACHED; then echo "Importing cached OSM data (if possible)"; elif $IMPORT_DATA; then echo "Importing data from OSM"; 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 +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo " Performing installations:" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" # Are we punching above our weight? @@ -173,11 +233,11 @@ if $INSTALL_POSTGRES; then fi echo "Installing postgresql-9.3 repository" - download_newer $DOWNLOAD_DIR/postgresql-repo.rpm $POSTGRESQL_REPO_RPM + fn_download_newer $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" - download_newer $DOWNLOAD_DIR/epel-repo.rpm http://fedora.aau.at/epel/6/i386/epel-release-6-8.noarch.rpm + fn_download_newer $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 @@ -211,7 +271,7 @@ if $INSTALL_POSTGIS; then # 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 $POSTGIS_VERSION > /dev/null 2>&1 +# 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 @@ -228,7 +288,7 @@ fi if $INSTALL_PGROUTING; then # echo "Installing cmake $CMAKE_VERSION from source" -# download_newer $DOWNLOAD_DIR/$CMAKE_FILE http://www.cmake.org/files/$CMAKE_VERSION_MAIN/$CMAKE_FILE +# 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* @@ -237,18 +297,26 @@ if $INSTALL_PGROUTING; then # make install >> install_cmake.log 2>&1 # cd $WORKSPACE_DIR - echo "Install rpmForge repository" - download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm + echo "Installing rpmForge repository" + fn_download_newer $DOWNLOAD_DIR/rpmforge-repo.rpm http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm 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 -fi -if $INSTALL_PGROUTING; then echo "Installing pgRouting dependencies" - yum -y install $POSTGRESQL_PKG_NAME-devel $POSTGRESQL_PKG_NAME-libs postgis2_93-devel > install_pgRouting_deps.log 2>&1 + 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 @@ -257,7 +325,8 @@ if $INSTALL_PGROUTING; then git checkout -q pgrouting-$PGROUTING_VERSION > /dev/null 2>&1 mkdir build cd build - cmake -DWITH_DD=ON .. > $WORKING_DIR/install_pgRouting.log 2>&1 +# 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 @@ -269,7 +338,7 @@ if $INSTALL_GEOSERVER; then ln -sf /usr/share/$TOMCAT_PKG_NAME $DEPLOY_DIR/$TOMCAT_PKG_NAME echo "Installing geoserver $GEOSERVER_VERSION" - download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE + fn_download_newer $DOWNLOAD_DIR/$GEOSERVER_FILE http://sourceforge.net/projects/geoserver/files/GeoServer/$GEOSERVER_VERSION/$GEOSERVER_FILE unzip -o -d $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps $DOWNLOAD_DIR/$GEOSERVER_FILE geoserver.war > install_geoserver.log 2>&1 echo "CATALINA_OPTS=\"-Djava.awt.headless=true -DGEOSERVER_DATA_DIR=$DEPLOY_DIR/geoserver/data_dir\"" >> /usr/share/$TOMCAT_PKG_NAME/conf/tomcat.conf mkdir -p $DEPLOY_DIR/geoserver/data_dir @@ -279,7 +348,7 @@ if $INSTALL_GEOSERVER; then unzip $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver.war -d $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver >> install_geoserver.log 2>&1 echo "Installing geoserver-shell $GEOSERVER_SHELL_VERSION" - download_newer $DOWNLOAD_DIR/$GEOSERVER_SHELL_FILE http://www.krismer.de/files/$GEOSERVER_SHELL_FILE + 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 @@ -288,7 +357,7 @@ fi if $INSTALL_JAVA; then echo "Installing java (oracle jdk-$JAVA_VERSION)" - download_newer $DOWNLOAD_DIR/$JAVA_FILE http://www.krismer.de/files/$JAVA_FILE + 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 @@ -303,8 +372,8 @@ fi if $INSTALL_MAVEN; then echo "Installing maven $MAVEN_VERSION" - mkdir -p $CACHE_DIR/maven - download_newer $DOWNLOAD_DIR/$MAVEN_FILE http://tweedo.com/mirror/apache/maven/maven-3/3.1.1/binaries/$MAVEN_FILE + 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 @@ -314,7 +383,7 @@ if $INSTALL_MAVEN; then 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/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml +# xmlstarlet edit --inplace --subnode "/_:settings" -t elem -n "localRepository" -v "$CACHE_DIR_LOCAL/maven" $DEPLOY_DIR/apache-maven/conf/settings.xml cp $SHARED_DIR/maven-settings.xml $DEPLOY_DIR/apache-maven/conf/settings.xml fi @@ -323,7 +392,7 @@ if $INSTALL_NEO4J; then yum install -y lsof > install_neo4j_deps.log 2>&1 echo "Installing neo4j $NEO4J_VERSION" - download_newer $DOWNLOAD_DIR/$NEO4J_FILE http://dist.neo4j.org/$NEO4J_FILE + 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 @@ -337,49 +406,49 @@ if $INSTALL_NEO4J_SPATIAL; then git checkout -q $NEO4J_SPATIAL_VERSION > /dev/null 2>&1 if $INSTALL_GEOSERVER; then - if $IMPORT_DATA; 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 neo4-spatial into geoserver from source" + 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 $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1 else - echo "Installing neo4-spatial into geoserver from binary" - 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 + 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 $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver/WEB-INF/lib > $WORKING_DIR/install_neo4j_spatial_plugin.log 2>&1 fi fi cd $WORKING_DIR fi -if $IMPORT_DATA; then +if $IMPORT_OSMDATA; then echo "Installing osmosis $OSMOSIS_VERSION" - download_newer $DOWNLOAD_DIR/$OSMOSIS_FILE http://bretth.dev.openstreetmap.org/osmosis-build/$OSMOSIS_FILE + 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 $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 +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 @@ -408,10 +477,10 @@ if $INSTALL_NEO4J; then fi if $INSTALL_GEOSERVER; then - echo "Configuring tomcat" + echo "Configuring tomcat users" cp $SHARED_DIR/tomcat-users.xml /usr/share/$TOMCAT_PKG_NAME/conf/tomcat-users.xml - echo "Setting permissions" + echo "Configuring tomcat permissions" chown -R tomcat:tomcat $DEPLOY_DIR/$TOMCAT_PKG_NAME/webapps/geoserver chown -R tomcat:tomcat $DEPLOY_DIR/geoserver fi @@ -434,36 +503,6 @@ if $INSTALL_GEOSERVER; then chkconfig $TOMCAT_SERVICE_NAME on >> start_tomcat.log 2>&1 fi -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" -echo " Services prepared!" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - -if $IMPORT_DATA; then - if $IMPORT_DATA_CACHED; then - echo "Downloading cached OpenStreetMap file (ibk)" - download_newer $DOWNLOAD_DIR/$OSM_FILE_IBK http://www.krismer.de/files/$OSM_FILE_IBK - cp $DOWNLOAD_DIR/$OSM_FILE_IBK $DEPLOY_DIR/$OSM_FILE_IBK > /dev/null 2>&1 - - echo "Downloading cached OpenStreetMap file (bz)" - download_newer $DOWNLOAD_DIR/$OSM_FILE_BZ http://www.krismer.de/files/$OSM_FILE_BZ - cp $DOWNLOAD_DIR/$OSM_FILE_BZ $DEPLOY_DIR/$OSM_FILE_BZ > /dev/null 2>&1 - fi - if [ ! -f $DEPLOY_DIR/$OSM_FILE_BZ ]; then - echo "Downloading OpenStreetMap file (bz)" - download_newer $DOWNLOAD_DIR/$OSM_FILE_ITALY http://download.geofabrik.de/europe/$OSM_FILE_ITALY - - echo "Filtering OpenStreetMap data (bz)" - $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE_ITALY" --bounding-box $OSM_BBOX_BZ --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_BZ" >> initialize_osm_data.sh 2>&1 - fi - if [ ! -f $DEPLOY_DIR/$OSM_FILE_IBK ]; then - echo "Downloading OpenStreetMap file (ibk)" - download_newer $DOWNLOAD_DIR/$OSM_FILE_AUSTRIA http://download.geofabrik.de/europe/$OSM_FILE_AUSTRIA - - echo "Filtering OpenStreetMap data" - $DEPLOY_DIR/osmosis/bin/osmosis --read-pbf file="$DOWNLOAD_DIR/$OSM_FILE_AUSTRIA" --bounding-box $OSM_BBOX_IBK --way-key keyList="$OSM_KEYS" --used-node --write-xml file="$DEPLOY_DIR/$OSM_FILE_IBK" >> initialize_osm_data.sh 2>&1 - fi -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 @@ -480,33 +519,21 @@ if $INSTALL_PGROUTING; then sudo -u postgres psql -d $PG_DB_NAME -c "CREATE EXTENSION pgRouting;" >> $WORKING_DIR/setup_database.log 2>&1 fi -if $IMPORT_DATA && $INSTALL_PGROUTING; then - echo "Importing filtered OpenStreetMap data into pgRouting database" - $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_BZ" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX_BZ > import_osm2pgrouting.log 2>&1 - $DEPLOY_DIR/osm2pgrouting/build/osm2pgrouting -file "$DEPLOY_DIR/$OSM_FILE_IBK" -conf "$OSM2PGROUTING_MAPPING_CONF" -dbname $PG_DB_NAME -user $PG_DB_USER -passwd $PG_DB_PASSWORD -clean -prefixtables $TABLE_PREFIX_IBK > import_osm2pgrouting.log 2>&1 +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo " Services prepared!" +if $IMPORT_OSMDATA || $IMPORT_OSMDATA_CACHED; then + echo " Importing data" + echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" - echo "Creating pgRouting topology" - sudo -u postgres psql -d $PG_DB_NAME -c "SELECT pgr_createTopology('bz_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1 - sudo -u postgres psql -d $PG_DB_NAME -c "SELECT pgr_createTopology('ibk_ways', $TOPOLOGY_TOLERANCE, 'the_geom', 'gid');" >> $WORKING_DIR/setup_database.log 2>&1 -fi + fn_import_data "Bozen" "$OSM_FILE_ITALY" "$OSM_FILE_BZ" "$OSM_BBOX_BZ" "bz_export.sql.gz" $TABLE_PREFIX_BZ + fn_import_data "Innsbruck" "$OSM_FILE_AUSTRIA" "$OSM_FILE_IBK" "$OSM_BBOX_IBK" "" $TABLE_PREFIX_IBK -if $IMPORT_DATA && $INSTALL_NEO4J_SPATIAL; then - echo "Importing filtered OpenStreetMap data into neo4j-spatial database" - 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_IBK" >> $WORKING_DIR/import_osm2neo4j.log 2>&1 - mvn exec:java -Dexec.mainClass=org.neo4j.gis.spatial.osm.OSMImporter -Dexec.args="$DEPLOY_DIR/neo4j/data/graph.db $DEPLOY_DIR/$OSM_FILE_BZ" >> $WORKING_DIR/import_osm2neo4j.log 2>&1 if $INSTALL_GEOSERVER; then - echo "Setting permissions for neo4j data" - chown -R tomcat:tomcat $DEPLOY_DIR/neo4j/data/graph.db - fi - cd $WORKING_DIR -fi - -if $INSTALL_GEOSERVER; then - echo "Starting geoserver $GEOSERVER_VERSION" - JAVA_HOME=$DEPLOY_DIR/jre GEOSERVER_HOME=$DEPLOY_DIR/geoserver $DEPLOY_DIR/geoserver/bin/startup.sh > start_geoserver.log 2>&1 & + if $INSTALL_NEO4J_SPATIAL; then + echo "Configuring neo4j data permissions for geoserver" + chown -R tomcat:tomcat $DEPLOY_DIR/neo4j/data/graph.db + fi - if $INSTALL_NEO4J_SPATIAL || $INSTALL_POSTGIS; then echo "Configuring geoserver $GEOSERVER_VERSION using geoserver-shell $GEOSERVER_SHELL_VERSION" sh $DEPLOY_DIR/gs-shell/bin/gs-shell --cmdfile $SHARED_DIR/geoserver_setup_workspace.gs > setup_geoserver_workspace.log 2>&1 if $INSTALL_NEO4J_SPATIAL; then @@ -521,7 +548,7 @@ fi END=$(date +%s) TOTAL=$(( $END - $START )) -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo " All preparations done... box can now be used" echo " Bootstrapping time: $TOTAL seconds" -echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" +echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"