Egen server för geodatatjänster – Del 10

I detta inlägg så kommer jag inte att ta upp så mycket nytt utan här handlar det uteslutande om att automatisera alla manuella handgrepp som gicks igenom i de inledande delarna för att installera alla servertjänster.

Du kommer fortfarande att få göra en del säkerhetsinställningar och annat, men i princip så ger instruktionen här dig en komplett geoserver genom att bara köra ett ”litet” skript.

Skriptet installerar även lite ytterligare ”bra att ha” funktioner, som en ssh-server för att sköta administration via nätverket.

Struntar du i vad som står på raderna i skriptet och bara vill komma igång så loggar du in på din nyinstallerade och uppdaterade Linux Ubuntu 12.04 Server och skriver in följande:

sudo su
wget https://github.com/klakar/geosupportsystem/raw/master/geoserver.sh
sh geoserver.sh

Vill du skapa skriptet lokalt så kopierar du texten nedan och klistrar in den i ett textdokument som du sparar under namnet geoserver.sh, eller ett annat valfritt namn. Placera skriptet så att det går att komma åt från servern via exempelvis ett http, eller ftp-kommando:

wget http://192.168.0.1/geoserver.sh

Kör sedan skriptet som root:

sudo su
sh geoserver.sh

Skriptet kommer du åt genom att klicka på länken här:

#!/bin/bash
DATUM=$(date)
echo "Installerar Geoserver: $DATUM">>logg.txt
IPA=$(ifconfig $1 | grep "inet addr" | awk -F: '{print $2}' | grep "Bcast" | awk '{print $1}')
ANV=$(w -hsu | grep "tty" | awk '{print $1}')
echo "IP: $IPA ANV: $ANV">>logg.txt
clear
echo "********************************************************"
echo "* Detta installerar OpenGeo Suite 4 och QGIS Server *"
echo "* *"
echo "* Du måste vara admin (sudo su) *"
echo "* Servern bör vara uppdaterad och omstartad innan. *"
echo "* *"
echo "* Två delade kataloger skapas också: *"
echo "* - qgis (För QGIS projekt) *"
echo "* - geodata (För data i filer) *"
echo "* *"
echo "* Tryck tangent för att starta *"
echo "********************************************************"
read d
# Hämtar nycklar för OpenGeo
echo "Nyckel för OpenGeo hämtas..."
wget -qO- http://apt.opengeo.org/gpg.key | apt-key add -
# Programkällor för OpenGeo
echo "deb http://apt.opengeo.org/suite/v4/ubuntu precise main" > /etc/apt/sources.list.d/opengeo.list
# Nycklar för QGIS Server
echo "Nyckel för QGIS hämtas..."
gpg --keyserver keyserver.ubuntu.com --recv 47765B75
gpg --export --armor 47765B75 | apt-key add -
# Programkällor för QGIS
echo "deb http://qgis.org/debian precise main" > /etc/apt/sources.list.d/qgis.list
echo "deb-src http://qgis.org/debian precise main" >> /etc/apt/sources.list.d/qgis.list
# Installera Grass m.m.
apt-get -y install grass python-software-properties
# Installera OpenGeo Suite 4.0 och QGIS Server
add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
echo "installerar OpenGeo Suite, vänta... länge..."
apt-get -y update
apt-get -y install opengeo
apt-get -y install apache2 qgis-mapserver libapache2-mod-fcgid
service apache2 restart
# Installerar Samba och utdelade kataloger
echo "installerar och konfigurerar Samba..."
apt-get -y install samba samba-common python-glade2 system-config-samba
mkdir /qgis
chmod -R 777 /qgis/
mkdir /geodata
chmod -R 777 /geodata/
rm /etc/samba/smb.conf
echo "#============= Globala Inställningar ===========">>/etc/samba/smb.conf
echo "[global]">>/etc/samba/smb.conf
echo "workgroup = WORKGROUP">>/etc/samba/smb.conf
echo "server string = Samba Server %v">>/etc/samba/smb.conf
echo "netbios name = geoserver">>/etc/samba/smb.conf
echo "security = user">>/etc/samba/smb.conf
echo "unix password sync = yes" >>/etc/samba/smb.conf
echo "map to guest = bad user">>/etc/samba/smb.conf
echo "dns proxy = no">>/etc/samba/smb.conf
echo "#============ Delade Kataloger ===========">>/etc/samba/smb.conf
echo "[qgis]">>/etc/samba/smb.conf
echo "path = /qgis">>/etc/samba/smb.conf
echo "browsable = yes">>/etc/samba/smb.conf
echo "writable = yes">>/etc/samba/smb.conf
echo "guest ok = yes">>/etc/samba/smb.conf
echo "read only = no">>/etc/samba/smb.conf
echo "[geodata]">>/etc/samba/smb.conf
echo "path = /geodata">>/etc/samba/smb.conf
echo "browsable = yes">>/etc/samba/smb.conf
echo "writable = yes">>/etc/samba/smb.conf
echo "guest ok = yes">>/etc/samba/smb.conf
echo "read only = no">>/etc/samba/smb.conf
mkdir /var/www/webbkartor
chmod -R 777 /var/www/webbkartor/
echo "[webbkartor]">>/etc/samba/smb.conf
echo "path = /var/www/webbkartor">>/etc/samba/smb.conf
echo "browsable = yes">>/etc/samba/smb.conf
echo "writable = yes">>/etc/samba/smb.conf
echo "guest ok = yes">>/etc/samba/smb.conf
echo "read only = no">>/etc/samba/smb.conf
service smbd restart
# Hämtar LeafletJs till webbkartor
wget http://leaflet-cdn.s3.amazonaws.com/build/leaflet-0.7.1.zip
mkdir /var/www/webbkartor/script
unzip leaflet-0.7.1.zip -d /var/www/webbkartor/script
# Installera SSH
apt-get -y install openssh-server
# Rättar till Postgres config
echo "Fixar Postgres konfig..."
ifconfig $1 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
UT="#listen_addresses = 'localhost'"
IN="listen_addresses = '$IPA,localhost'"
sed -i "s/$UT/$IN/g" /etc/postgresql/9.3/main/postgresql.conf
RYMD=$(echo $IPA | awk -F. '{print $1"."$2"."$3".1/24"}')
ny_rad="host all all $RYMD md5"
sed -i "/IPv4/a $ny_rad" /etc/postgresql/9.3/main/pg_hba.conf
/etc/init.d/postgresql restart
clear
echo " "
echo " XX XX"
echo " XX XX XX XX XX XXXXX"
echo " XX XX XX xxxx XX XX XX"
echo " XX XX XX XX XX XX XX XX"
echo " XXXXXX XX XXXXXX XX XXXXXX"
echo " XX XX XX XX XX XX XX XX"
echo " XX XX XX XX XX XX XX XX"
echo " XX XX XXXX XX XX XXXXXX XX"
echo ""
echo "Ange nytt lösenord för UNIX användaren Postgres."
echo "(Om det blir fel avbryt skriptet och kör om):"
passwd postgres
echo "Om det gick bra så tryck valfri tangent, annars ctrl-c"
read d
clear
echo "Sätt nytt lösenord för användaren i PSQL:"
echo "\password postgres"
echo "Avsluta med \q"
sudo -s -u postgres psql
clear
# Uppdatera systemet, igen...
apt-get -y update
apt-get -y upgrade
# Skapa PostGIS databasmall
echo "Skapar PostGIS databasmall..."
cd /usr/share/postgresql/9.3/contrib/postgis-2.1/
sudo -u postgres createdb postgis_mall
sudo -u postgres psql -d postgis_mall -f postgis.sql
sudo -u postgres psql -d postgis_mall -f spatial_ref_sys.sql
sudo -u postgres psql -d postgis_mall -f postgis_comments.sql
sudo -u postgres psql -d postgis_mall -f rtpostgis.sql
sudo -u postgres psql -d postgis_mall -f raster_comments.sql
sudo -u postgres psql -d postgis_mall -f topology.sql
sudo -u postgres psql -d postgis_mall -f topology_comments.sql
# Skapa PostGIS databas
echo "Skapar PostGIS databas 'geodata'..."
sudo -u postgres createdb geodata
sudo -u postgres psql -d geodata -f postgis.sql
sudo -u postgres psql -d geodata -f spatial_ref_sys.sql
sudo -u postgres psql -d geodata -f postgis_comments.sql
sudo -u postgres psql -d geodata -f rtpostgis.sql
sudo -u postgres psql -d geodata -f raster_comments.sql
sudo -u postgres psql -d geodata -f topology.sql
sudo -u postgres psql -d geodata -f topology_comments.sql
echo "klart!"
# Installera Windows typsnitt
apt-get -y install msttcorefonts
clear
echo "========================================================================"
echo " Installation klar!"
echo " Fjärrstyr: ssh $ANV@$IPA"
echo " SAMBA (windows fileshare) till qgis & geodata"
echo " OpenGeo Suite: http://$IPA:8080/dashboard"
echo " pgAdminIII (user/pass): postgres/*******"
echo " Fjärrstyr: ssh $ANV@$IPA">>logg.txt
echo " SAMBA (windows fileshare) till qgis & geodata">>logg.txt
echo " OpenGeo Suite: http://$IPA:8080/dashboard">>logg.txt
echo " pgAdminIII (user/pass): postgres/*******">>logg.txt
echo "========================================================================"
echo " Spara qgis-projekt i qgis katalogen, anropa dessa via WMS/WFS"
echo " http://[IP]/cgi-bin/qgis_mapserv.fcgi?VERSION=1.3.0&map=/qgis/fil.qgs"
echo "========================================================================"
echo " Om något inte fungerar så kör skriptet en gång till."
echo "========================================================================"
echo " Starta om servern för att aktivera alla funktioner..."
echo "========================================================================"
Annonser

Taggar:

3 responses to “Egen server för geodatatjänster – Del 10”

  1. Lunken says :

    Vore intressant med ett inlägg om postgrsql och postgis via Amazon RDS, som installeras hur enkelt som helst. Hur gör man bäst för att lägga på geoserver etc på en sådan installation?

    • Klas Karlsson says :

      Tja, Amazon RDS går att sätta upp gratis, men kommer ganska snabbt att kosta pengar om man vill använda den, men för den som behöver en liknande tjänst är det kanske ett bra alternativ. Om någon nappar på idén så är ni välkomna med ett gästinlägg.

      Om man kan ansluta med exempelvis QGIS till en PostGIS databas där, så borde det vara precis lika enkelt att ansluta med GeoServer. Nästa steg blir väl att hitta en tjänst med ävan GeoServer i molnet… Hupp, det gör det: http://www.acugis.com/geoserver-hosting.htm (exempelvis).

      • Lunken says :

        Japp, satte upp en RDS och du vart mycket enkelt, samt att koppla upp med qgis. Däremot så vill man som sagt få ut någon typ av tjänst. Så det du nämner måste jag testa.
        Har också via ajax-anrop till mysql fått ut en vy som konverteras till geojson för publicering i leaflet. Utdraget bygget på aktuellt kartexent. Funkar riktigt smidigt.
        Skulle kanske sätta ihop en beskrivning av det. .. Tiden måste bara finnas.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: