Hipsterisms

Ich fürchte, ich werde alt. Faul war ich ja schon, aber auf das seitenweise Abtippen vom Kommandos — so haben wir Mitte der 80er angefangen — stehe ich neuerdings auch nicht mehr so.

Worum geht’s? Ich könnte einen Nominatim-Server gebauchen. Komischer Name, praktisches Teil: man schickt der API Daten, um aus Adressen Koordinaten zu machen — oder aus Koordinaten Adressen. Wir nutzen das z. B. in unserer Freifunk-Firmware, um die Geolokalisierung der Knoten zu vereinfachen und auch die Zuordnung zu »Teilnetzen« zu realisieren. (Die FFNord-Kollegen nennen das »Hoods«, die Paderborer/Freifunk Hochstift »Regionen«; effektiv geht es darum, anhand der Aufstellposition des Knotens die richtige »site.conf«, also die korrekten Verbindungsdaten, zuzuweisen.)

Zwar habe ich mit für den free usage-Tier bei Mapquest registriert, aber seit zwei, drei Monaten kommt, immer früher im Monat, die Info, daß 80% der erlaubten Abfragen schon getan wurden — ja, da steht Ursachenforschung an, parallel aber auch die Suche nach Alternativen. Eine ist es, Nominatim (wie auch einen Tile-Server, aber dazu bei Gelegenheit mehr) selbst zu betreiben.

Kann man machen, ist man aber gefühlt ein Wocheende mit cut&paste beschäftigt; also eher was für lange Winternächte am Kamin … Aber die Rettung ist nah; so eine Installation kann man im Grunde skripten, und was man skripten kann, ist eigentlich prädestiniert als Einweck-Lösung, sprich: Docker-Container. Dachte wohl nicht nur ich, sondern auch der github-Nutzer helvalius, der eine entsprechenden Docker-Container-Bauanleitung auf github hinterlassen hat. Dumm nur: »docker.io« von Ubuntu 14.04 LTS ist noch Version 1.6, »natürlich« braucht’s mindestens 1.9 für die genutzten Features. Dank eines PPAs bin ich nun auf 1.11 — und der Kram baut dennoch nicht:

Removing intermediate container 8f8ccff20d50
Step 25 : RUN service postgresql start &&   sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='nominatim'" | grep -q 1 || sudo -u postgres createuser -s nominatim &&   sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='www-data'" | grep -q 1 || sudo -u postgres createuser -SDR www-data &&   sudo -u postgres psql postgres -c "DROP DATABASE IF EXISTS nominatim"
 ---> Running in f81d776ce724
 * Starting PostgreSQL 9.3 database server
   ...done.
psql: FATAL:  the database system is starting up
createuser: could not connect to database postgres: FATAL:  the database system is starting up
createuser: could not connect to database postgres: FATAL:  the database system is starting up
The command '/bin/sh -c service postgresql start &&   sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='nominatim'" | grep -q 1 || sudo -u postgres createuser -s nominatim &&   sudo -u postgres psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='www-data'" | grep -q 1 || sudo -u postgres createuser -SDR www-data &&   sudo -u postgres psql postgres -c "DROP DATABASE IF EXISTS nominatim"' returned a non-zero code: 1

Ich suche dann mal meine Hornbrille, mein MacBook Air und eine hippe Location, um in meinen alkoholfreien Mojito zu weinen. *sigh*

Nachtrag: Wie erwartet, zwei beherzte »sleep 30 &&« nach dem postgresql-Start eingefügt ins Dockerfile, und schon baut das auch ohne zu murren ;-)

2 thoughts on “Hipsterisms

  1. Geil!
    Man(n) willst du nicht als DevOps anfangen?

    #SCNR

Comments are closed.