Difference between revisions of "Trabajo Cristian"

From stgo
Jump to: navigation, search
(Configuración UPS)
(Script de 19:13)
 
(35 intermediate revisions by 2 users not shown)
Line 83: Line 83:
 
Luego para upsmon editamos el archivo /etc/nut/upsmon.conf y modificamos las siguientes líneas:
 
Luego para upsmon editamos el archivo /etc/nut/upsmon.conf y modificamos las siguientes líneas:
  
   MONITOR trust@localhost 1 upsmon pass master   
+
   MONITOR snmpv1 1 upsmon pass master   
 
   POWERDOWNFLAG /etc/killpower   
 
   POWERDOWNFLAG /etc/killpower   
 
   SHUTDOWNCMD "/sbin/shutdown -h now"  
 
   SHUTDOWNCMD "/sbin/shutdown -h now"  
Line 108: Line 108:
  
 
   upsc snmpv1
 
   upsc snmpv1
 +
 +
En caso de que no exista conexión, puede ser a causa de que el dirver no se encuentre corriendo, la solución para levantar dicho driver es ejecutar
 +
 +
  upsdrvctr start
 +
 +
== Agregar -18 y .14 al apagado ==
 +
 +
http://2tazasdelinux.blogspot.cl/2014/11/controlar-nuestro-sai-con-nut.html
  
 
= Mantención VM MiCiudad=
 
= Mantención VM MiCiudad=
Line 119: Line 127:
  
 
Luego de esto ya es posible la actualización e instalación de aplicaciones via apt-get
 
Luego de esto ya es posible la actualización e instalación de aplicaciones via apt-get
 +
 +
 +
= omeka.org =
 +
 +
== Ubuntu ==
 +
 +
Se propuso la instalación del servicio Omeka, para ello utilizamos una VM con Ubuntu, en el caso de prueba se utiliza Ubuntu 15.04.
 +
 +
Primero, con permisos de administrador, se actualiza la VM y se instalan las dependencias para Omeka
 +
 +
  sudo apt-get update
 +
  sudo apt-get install -y unzip php5 php5-mysql apache2 mysql-server imagemagick
 +
 +
Luego se descargan los archivos para la instalación de Omeka
 +
 +
  cd
 +
  wget http://omeka.org/files/omeka-2.3.1.zip
 +
  unzip omeka-2.3.1.zip
 +
 +
Se mueven los archivos al directorio web
 +
 
 +
  sudo mv omeka-2.0/* /var/www/
 +
  sudo mv omeka-2.0/.htaccess /var/www/
 +
  sudo rm /var/www/index.html
 +
 +
Configurar la base de datos, creando un usuario y sus permisos
 +
 +
  sudo groupadd webdev
 +
  sudo usermod -a -G webdev ubuntu
 +
  cd /var
 +
  sudo chown -R root.webdev www
 +
  sudo chmod 775 www
 +
  cd /var/www
 +
  sudo find . -type d | xargs sudo chmod 775
 +
  sudo find . -type f | xargs sudo chmod 664
 +
  sudo find files -type d | xargs sudo chmod 777
 +
  sudo find files -type f | xargs sudo chmod 666
 +
 +
Crear la base de datos
 +
 +
  mysql -u root -p
 +
 +
  create database omeka;
 +
  grant all privileges on omeka.* to 'ubuntu' identified by 'reverse';
 +
  flush privileges;
 +
  quit;
 +
 +
Editar el archivo db.ini modificando
 +
 +
  [database]
 +
  host = "localhost"
 +
  username = "ubuntu"
 +
  password = "reverse"
 +
  dbname = "omeka"
 +
  prefix = "omeka_"
 +
 +
Finalmente activar mod_rewrite
 +
 +
  sudo a2enmod rewrite
 +
 +
Editar el archivo /etc/apache2/sites-available/default cambiando "AllowOverride None" a "AllowOverride All".
 +
 +
Listo :)
 +
 +
Lamentablemente esta instalación trae problemas con la activación de mod_rewrite.
 +
 +
== Fedora Server 23 ==
 +
 +
Lo primero son las dependencias
 +
 +
  dnf install unzip mysql-server php php-mysql ImageMagick
 +
 +
  chkconfig --levels 235 httpd on
 +
  chkconfig --levels 235 mariadb on
 +
 +
  setenforce 0
 +
  systemctl start mariadb
 +
 +
  mysql_secure_installation
 +
 +
Colocar contraseña para cuenta de administrador en base de datos
 +
 +
  mysql -u root -p
 +
  mysql> use mysql
 +
  mysql> insert into user(host, user, password) values('localhost','omeka_user',password('test'));
 +
  mysql> insert into db(host,db,user,Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values ('localhost','omeka_db','omeka_user','Y','Y','Y','Y','Y','Y');
 +
  mysql> quit
 +
 +
  mysqladmin -u root -p create omeka_db
 +
  mysqladmin -u root -p reload
 +
  mysql> ALTER DATABASE omeka_db DEFAULT CHARACTER SET 'utf8' DEFAULT COLLATE 'utf8_unicode_ci';
 +
  mysql> quit
 +
 +
 +
Editar el archivo /etc/httpd/conf/httpd.conf, cambiando el valor de AllowOverride  que se encuentra dentro del bloque <Directory "/var/www/html"> por All.
 +
 +
  systemctl restart httpd
 +
 +
  wget http://omeka.org/files/omeka-2.3.1.zip
 +
 +
descomprimir archivo zip y renombrar carpeta por <code>omeka</code>
 +
 +
editar el archivo <code>omeka/db.ini</code> con sus respectivos datos:
 +
  [database]
 +
  host    = "localhost"
 +
  username = "omeka_user"
 +
  password = "test"
 +
  name    = "omeka_db"
 +
  prefix  = "omeka_"
 +
  ;port    = ""
 +
 +
= Extractor de tweets =
 +
 +
dependencias de trabajo:
 +
 +
  sudo apt-get install git vim
 +
 +
dependencias: tweepy y psycopg2
 +
 +
  sudo pip install tweepy
 +
  sudo apt-get install python-psycopg2
 +
 +
También es necesario instalar y crear un usuario en postgresql
 +
 +
  sudo apt-get install postgresql postgresql-contrib
 +
  sudo -i -u postgres
 +
  createuser --interactive
 +
  # csfuente as superuser
 +
  createdb csfuente
 +
  logout
 +
 +
luego clonar el repositorio git
 +
 +
  git clone http://146.155.17.18:18080/csfuente/twitter_extractor.git
 +
  cd twitter_extractor
 +
 +
Aquí tenemos dos archivos que ejecutar, primero es main.py el cual, al ser ejecutado por primera vez hay que poner un -r al final para crear la tabla de la base de datos (también borra todo dato anterior).
 +
 +
  python main.py <Cuenta de twitter> [-r]
 +
 +
Luego que finalice el anterior, se debe ejecutar el streaming, para recepcionar los tweets que vendrán.
 +
 +
  python stream <Cuenta de twitter>
 +
 +
Ejemplo
 +
 +
  python main.py Cristian_F_G -r
 +
  python main.py Cristian_F_G
 +
 +
= OwnCloud =
 +
 +
backup location after clicking on OwnCloud update: /var/www/html/owncloud/data/updater_backup/8.2.2.2-8fa08547
 +
 +
Variable for URL name:
 +
'overwrite.cli.url' => 'http://146.155.17.18:17080/owncloud',
 +
 +
= OpenTripPlanner =
 +
 +
== Instalación  ==
 +
 +
Son necesarios dos programas escenciales, Java 8 y Maven mayor a 3.1.1
 +
 +
Para Java ejecutamos
 +
 +
  sudo add-apt-repository ppa:openjdk-r/ppa
 +
  sudo apt-get update
 +
  sudo apt-get install openjdk-8-jdk
 +
 +
Para Maven
 +
 +
  sudo apt-get install gdebi
 +
  wget http://ppa.launchpad.net/natecarlson/maven3/ubuntu/pool/main/m/maven3/maven3_3.2.1-0~ppa1_all.deb
 +
  sudo gdebi maven3_3.2.1-0~ppa1_all.deb
 +
  sudo ln -s /usr/share/maven3/bin/mvn /usr/bin/mvn
 +
 +
Luego necesitamos git
 +
 +
  sudo apt-get install git
 +
 +
Y finalmente procedemos con la copia e instalación de OpenTripPlanner
 +
 +
  git clone https://github.com/opentripplanner/OpenTripPlanner.git
 +
  cd OpenTripPlanner
 +
  mvn clean package -DskipTests
 +
 +
Creamos la carpeta con la data
 +
 +
  mkdir /home/csfuente/otp
 +
  cd /home/csfuente/otp
 +
 +
Descargamos la data en esta carpeta....
 +
 +
  wget http://www.dtpm.cl/descargas/gtfs/GTFS.zip
 +
 +
Ejecutamos OTP desde su directorio con el comando
 +
 +
  ./otp --build /home/csfuente/otp --inMemory
 +
 +
Y para todo Chile:
 +
  ./otp --build /home/csfuente/otpTransantiago --inMemory
 +
 +
== Actualizar la información ==
 +
 +
Para actualizar la información es necesario ir revisando los cambios de los archivos GTFS que se encuentran disponibles en la red, cuando notemos que uno es más nuevo es necesario descargarlo y ubicarlo en la carpeta que contiene todos los archivos similares (Actualmente se está utilizando la carpeta /home/csfuente/otpTransantiago ) por lo que entramos a dicha carpeta y descargamos los datos con '''wget'''. Finalmente reiniciamos la VM, esperamos a que inicie (cerca de ~10 minutos) y estará con todos los datos actualizados.
 +
 +
= OSM + Overpass =
 +
 +
== Instalación de servidor de OSM ==
 +
 +
Para la instalación se utiliza una VM con Ubuntu 14.04. Las instrucciones fueron sacadas de:
 +
* https://switch2osm.org/serving-tiles/manually-building-a-tile-server-14-04/
 +
Y actualizadas con la nueva versión de osm2pgsql
 +
* https://github.com/openstreetmap/osm2pgsql
 +
 +
Lo primero es instalar las dependencias necesarias para proceder con la instalación de los componentes que utiliza OSM.
 +
 +
  sudo apt-get install libboost-all-dev subversion git-core tar unzip wget bzip2 build-essential \
 +
    autoconf libtool libxml2-dev libgeos-dev libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node \
 +
    munin libprotobuf-c0-dev protobuf-c-compiler libfreetype6-dev libpng12-dev libtiff4-dev libicu-dev \
 +
    libgdal-dev libcairo-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev liblua5.2-dev ttf-unifont \
 +
    lua5.1 liblua5.1-dev libgeotiff-epsg node-carto
 +
 +
Luego hay que instalar Postgresql y postgis
 +
 +
  sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1
 +
 +
Ahora es necesario crear la base de datos, para ello necesitaremos de un usuario en postgres, por ahora se utilizará 'username' para la documentación.
 +
 +
  sudo -u postgres -i
 +
  createuser username
 +
  createdb -E UTF8 -O username gis
 +
  exit
 +
 +
Lo mismo para el sistema Unix
 +
 +
  sudo useradd -m username
 +
  sudo passwd username
 +
 +
Creamos las tablas de postgres y las asignamos al usuario
 +
 +
  sudo -u postgres psql
 +
  \c gis
 +
  CREATE EXTENSION postgis;
 +
  ALTER TABLE geometry_columns OWNER TO username;
 +
  ALTER TABLE spatial_ref_sys OWNER TO username;
 +
  \q
 +
  exit
 +
 +
Pasamos a la instalación de osm2pgsql, para ello crearemos la carpeta 'src' en la raiz de root para adjuntar los archivos
 +
 +
  mkdir ~/src
 +
  cd ~/src
 +
  git clone https://github.com/openstreetmap/osm2pgsql.git
 +
 +
Instalamos sus dependencias
 +
 +
  sudo apt-get install make cmake g++ libboost-dev libboost-system-dev \
 +
    libboost-filesystem-dev libexpat1-dev zlib1g-dev \
 +
    libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev lua5.2 \
 +
    liblua5.2-dev
 +
 +
Compilamos e instalamos
 +
 +
  mkdir build && cd build
 +
  cmake ..
 +
  make
 +
  sudo make install
 +
 +
Procedemos a instalar Mapnik
 +
 +
  cd ~/src
 +
  git clone git://github.com/mapnik/mapnik
 +
  cd mapnik
 +
  git branch 2.2 origin/2.2.x
 +
  git checkout 2.2
 +
  python scons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/truetype/
 +
  make
 +
  sudo make install
 +
  sudo ldconfig
 +
 +
Podemos verificar que Mapnik funciona con
 +
 +
  python
 +
  >>> import mapnik
 +
  >>>
 +
 +
Ahora la instalación de mod_tile y render
 +
 +
  cd ~/src
 +
  git clone git://github.com/openstreetmap/mod_tile.git
 +
  cd mod_tile
 +
  ./autogen.sh
 +
  ./configure
 +
  make
 +
  sudo make install
 +
  sudo make install-mod_tile
 +
  sudo ldconfig
 +
 +
Se crea la carpeta /usr/local/share/maps/style para los archivos stylesheet y los recursos necesarios, además instalamos y configuramos OSM Bright
 +
 +
  sudo mkdir -p /usr/local/share/maps/style
 +
  sudo chown username /usr/local/share/maps/style
 +
  cd /usr/local/share/maps/style
 +
  wget https://github.com/mapbox/osm-bright/archive/master.zip
 +
  wget http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip
 +
  wget http://data.openstreetmapdata.com/land-polygons-split-3857.zip
 +
  mkdir ne_10m_populated_places_simple
 +
  cd ne_10m_populated_places_simple
 +
  wget http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places_simple.zip
 +
  unzip ne_10m_populated_places_simple.zip
 +
  rm ne_10m_populated_places_simple.zip
 +
  cd ..
 +
  unzip '*.zip'
 +
  mkdir osm-bright-master/shp
 +
  mv land-polygons-split-3857 osm-bright-master/shp/
 +
  mv simplified-land-polygons-complete-3857 osm-bright-master/shp/
 +
  mv ne_10m_populated_places_simple osm-bright-master/shp/
 +
  cd osm-bright-master/shp/land-polygons-split-3857
 +
  shapeindex land_polygons.shp
 +
  cd ../simplified-land-polygons-complete-3857/
 +
  shapeindex simplified_land_polygons.shp
 +
  cd ../..
 +
 +
Ahora configuramos OSM Bright
 +
 +
  vim osm-bright/osm-bright.osm2pgsql.mml
 +
 +
Acá hay que buscar las direcciones que se encuentran al lado derecho del tag 'file' y cambiar la dirección por la ruta de los archivos que cambiamos anteriormente, además agregamos su característica de 'type' tal como se muestra a continuación
 +
 +
  "file": "/usr/local/share/maps/style/osm-bright-master/shp/land-polygons-split-3857/land_polygons.shp",
 +
  "type": "shape"
 +
 +
  "file": "/usr/local/share/maps/style/osm-bright-master/shp/simplified-land-polygons-complete-3857/simplified_land_polygons.shp",
 +
  "type": "shape",
 +
 +
  "file": "/usr/local/share/maps/style/osm-bright-master/shp/ne_10m_populated_places_simple/ne_10m_populated_places_simple.shp",
 +
  "type": "shape"
 +
 +
Hay que ser riguroso con no olvidar las comas finales de cada línea.
 +
Luego, en la sección 'ne-places', reemplazar 'srs' y 'srs-name' con esto:
 +
 +
  "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"
 +
 +
Guardamos y salimos.
 +
 +
Nos queda ahora compilar todo para que Mapnik pueda ser utilizado. Creamos el archivo de configuración y cambiamos la linea de pointing de ~/Documents/Mapbox/project a /usr/local/share/maps/style y cambiamos dbname de osm a gis. Guardamos y salimos.
 +
 +
  cp configure.py.sample configure.py
 +
  vim configure.py
 +
  #Realizar cambios nombrados
 +
  ./make.py
 +
  cd ../OSMBright/
 +
  carto project.mml > OSMBright.xml
 +
 +
Listo con ésto, ahora debemos configurar el render. Como root es necesario editar el archivo de configuración de render ubicado en /usr/local/etc/renderd.conf y cambiar las siguientes lineas en las secciones de render, mapnik y default.
 +
 +
  socketname=/var/run/renderd/renderd.sock
 +
  plugins_dir=/usr/local/lib/mapnik/input
 +
  font_dir=/usr/share/fonts/truetype/ttf-dejavu
 +
  XML=/usr/local/share/maps/style/OSMBright/OSMBright.xml
 +
  HOST=localhost
 +
 +
Las líneas que se encuentran comentadas con un ; deben ser descomentadas.
 +
 +
Ahora creamos las carpetas necesarias para usar el sistema de mod_tile
 +
 +
  sudo mkdir /var/run/renderd
 +
  sudo chown username /var/run/renderd
 +
  sudo mkdir /var/lib/mod_tile
 +
  sudo chown username /var/lib/mod_tile
 +
 +
creamos en archivo /etc/apache2/conf-available/mod_tile.conf y agregamos una sola línea:
 +
 +
  LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so
 +
 +
Y editamos el archivo /etc/apache2/sites-available/000-default.conf agregando esto justo después del email del administrador
 +
 +
  LoadTileConfigFile /usr/local/etc/renderd.conf
 +
  ModTileRenderdSocketName /var/run/renderd/renderd.sock
 +
  # Timeout before giving up for a tile to be rendered
 +
  ModTileRequestTimeout 0
 +
  # Timeout before giving up for a tile to be rendered that is otherwise missing
 +
  ModTileMissingRequestTimeout 30
 +
 +
Finalmente agregamos mod_tile a apache y lo reiniciamos
 +
 +
  sudo a2enconf mod_tile
 +
  sudo service apache2 reload
 +
 +
Ahora debemos dejar mas potente postgres para que no funcione lento al momento de solicitar datos, editamos con sudo el archivo /etc/postgresql/9.3/main/postgresql.conf para cambiar:
 +
 +
  shared_buffers = 128MB
 +
  checkpoint_segments = 20
 +
  maintenance_work_mem = 256MB
 +
  autovacuum = off
 +
 +
editamos tambien con sudo el archivo /etc/sysctl.conf para agregar una línea entre las definiciones de kernel
 +
 +
  # Increase kernel shared memory segments - needed for large databases
 +
  kernel.shmmax=268435456
 +
 +
Reiniciamos la VM y luego ejecutamos:
 +
 +
  sudo sysctl kernel.shmmax
 +
 +
y verificamos que nos muestre el número que pusimos
 +
 +
Ahora nos queda cargar las tiles correspondientes al servidor, para este trabajo se utilizan solo las tiles de Chile.
 +
 +
  sudo mkdir /usr/local/share/maps/planet
 +
  sudo chown username /usr/local/share/maps/planet
 +
  cd /usr/local/share/maps/planet
 +
  wget http://download.geofabrik.de/south-america/chile-latest.osm.pbf
 +
 +
Importamos la data descargada en la base de datos, el número que se encuentra luego de -C debe ser cambiado dependiendo de la memoria RAM disponible para la máquina. Se sugiere comenzar con un númerp 16000 y si excede la memoria entonces reducir dicho número. Para las pruebas fue posible ejecutar el comando con un -C de 3500
 +
 +
  osm2pgsql --slim -d gis -C 3500 --number-processes 3 /usr/local/share/maps/planet/chile-latest.osm.pbf
 +
 +
Tomar café y esperar. Dependiendo de la información a cargar, puede tardar entre 10 minutos hasta 24 horas.
 +
 +
Finalmente levantamos el servidor y lo hacemos correr, para ello ejecutamos
 +
 +
  sudo mkdir /var/run/renderd
 +
  sudo chown username /var/run/renderd
 +
  sudo -u username renderd -f -c /usr/local/etc/renderd.conf
 +
 +
y en una terminal diferente
 +
 +
  sudo service apache2 reload
 +
 +
Podemos probar que el servidor se encuentra corriendo entrando a la dirección http://localhost/osm_tiles/0/0/0.png para ver una imagen del mundo. Para otras imágenes es necesario rescatarlas con http://localhost/osm_tiles/{z}/{x}/{y}.png (localhost puede ser cambiado por la IP de la VM)
 +
 +
== Instalación de Overpass API ==
 +
 +
La información fue extraida desde las siguientes páginas con modificación en los link de descarga de la data:
 +
 +
  http://overpass-api.de/no_frills.html
 +
  http://overpass-api.de/full_installation.html
 +
 +
Los comandos utilizados fueron:
 +
 +
Primero son las dependencias base
 +
 +
  sudo apt-get install wget g++ make expat libexpat1-dev zlib1g-dev
 +
 +
Luego se realiza la instalación del software de Overpass, para ello se utiliza como directorio de ejecutables la misma base del archivo a descargar (perfectamente se podría cambiar)
 +
 +
  wget http://dev.overpass-api.de/releases/osm-3s_v0.7.52.tar.gz
 +
  gunzip <osm-3s_v0.7.52.tar.gz | tar xvf -
 +
  cd osm-3s_v0.7.52/
 +
  ./configure --prefix="`pwd`"
 +
  make CXXFLAGS="-O3"
 +
 +
Se crea la carpeta de la base de datos, se descarga la información y se adjunta a Overpass (Es posible solo utilizar Chile)
 +
 +
  mkdir db
 +
  wget -O planet.osm.bz2 "http://planet.osm.org/planet/planet-latest.osm.bz2"
 +
  bin/init_osm3s.sh planet.osm.bz2 "db/" "./" --meta
 +
 +
Con esto ya tenemos la data de Overpass, ahora lo uniremos a Apache, para ello lo instalamos y configuramos para cgi según http://wiki.openstreetmap.org/wiki/Overpass_API/Installation#Setting_up_the_Web_API
 +
 +
  sudo apt-get install apache2
 +
  sudo a2enmod cgi
 +
  sudo vim /etc/apache2/sites-available/000-default.conf
 +
 +
En el archivo agregamos las líneas faltantes para que nos quede algo similar a esto:
 +
 +
<source lang="bash">
 +
  <VirtualHost *:80>
 +
    ServerAdmin webmaster@localhost
 +
    ExtFilterDefine gzip mode=output cmd=/bin/gzip
 +
    DocumentRoot [YOUR_HTML_ROOT_DIR]
 +
    # This directive indicates that whenever someone types http://www.mydomain.com/api/
 +
    # Apache2 should refer to what is in the local directory [YOUR_EXEC_DIR]/cgi-bin/
 +
    ScriptAlias /api/ [YOUR_EXEC_DIR]/cgi-bin/
 +
    # This specifies some directives specific to the directory: [YOUR_EXEC_DIR]/cgi-bin/
 +
    <Directory "[YOUR_EXEC_DIR]/cgi-bin/">
 +
      AllowOverride None
 +
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 +
      # For Apache 2.4:
 +
      #  Order allow,deny
 +
      # For Apache > 2.4: 
 +
      Require all granted
 +
      #SetOutputFilter gzip
 +
      #Header set Content-Encoding gzip
 +
    </Directory>
 +
    ErrorLog /var/log/apache2/error.log
 +
    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg
 +
    LogLevel warn
 +
    CustomLog /var/log/apache2/access.log combined
 +
  </VirtualHost>
 +
</source>
 +
 +
Utilizando [YOUR_HTML_ROOT_DIR] por el que venía por defecto, [YOUR_EXEC_DIR] la dirección completa en donde compilamos Overpass y dejando sin editar ErrorLog y CustomLog.
 +
 +
Luego se reinicia el demonio de apache
 +
 +
  sudo service apache2 restart
 +
 +
Finalmente ejecutamos el proceso que nos permite recuperar los archivos que buscamos, para ello nos posicionamos en la carpeta del ejecutable en donde instalamos Overpass y escribimos el siguiente comando:
 +
 +
  sudo nohup bin/dispatcher --osm-base --meta --db-dir="db" &
 +
 +
Listo, ahora para poder recuperar un archivo xml con los cambios que deseamos probar, debemos ejecutar el siguiente comando en algún otro computador (o el mismo)
 +
 +
  wget --output-document=[nombre_archivo.xml] http://[IP_de_la_máquina]/api/interpreter?data=[código_a_ejecutar_en_overpass]
 +
 +
como ejemplo, en la misma máquina podemos ejecutar
 +
 +
  wget --output-document=test.xml http://localhost/api/interpreter?data=%3Cprint%20mode=%22body%22/%3E
 +
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<osm-derived>
 +
  <note>
 +
    The data included in this document is from www.openstreetmap.org. It has there been collected
 +
    by a large group of contributors. For individual attribution of each item please refer to
 +
    http://www.openstreetmap.org/api/0.6/[node|way|relation]/#id/history
 +
  </note>
 +
  <meta osm_base=""/>
 +
 +
</osm-derived>
 +
</source>
 +
 +
 +
PD: Los bancos de mi ciudad:
 +
 +
<source lang="html4strict">
 +
http://localhost/api/interpreter?data=%3Cosm-script%3E%3Cquery%20into=%22_%22%20type=%22node%22%3E%3Chas-kv%20k=%22amenity%22%20modv=%22%22%20v=%22bank%22/%3E%3Cbbox-query%20e=%22-71.72712922096252%22%20into=%22_%22%20n=%22-35.59095565308603%22%20s=%22-35.5972720219081%22%20w=%22-71.73655986785889%22/%3E%3C/query%3E%3Cprint%20e=%22%22%20from=%22_%22%20geometry=%22skeleton%22%20limit=%22%22%20mode=%22body%22%20n=%22%22%20order=%22id%22%20s=%22%22%20w=%22%22/%3E%3C/osm-script%3E
 +
</source>
 +
 +
<source lang="xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<osm version="0.6" generator="Overpass API">
 +
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
 +
<meta osm_base=""/>
 +
 +
  <node id="2540586850" lat="-35.5947536" lon="-71.7334849">
 +
    <tag k="amenity" v="bank"/>
 +
    <tag k="name" v="BancoEstado"/>
 +
  </node>
 +
  <node id="2540586923" lat="-35.5946228" lon="-71.7339302">
 +
    <tag k="amenity" v="bank"/>
 +
    <tag k="name" v="Banco de Chile"/>
 +
  </node>
 +
  <node id="2540635212" lat="-35.5956784" lon="-71.7295394">
 +
    <tag k="amenity" v="bank"/>
 +
    <tag k="name" v="Santander"/>
 +
  </node>
 +
 +
</osm>
 +
</source>
 +
 +
=== Actualización de Overpass ===
 +
 +
Para la actualización debemos realizar nuevamente una instalación completa por cada vez que sale una versión, por lo que tenemos que comenzar con descargar la nueva versión desde el comando '''wget''' en adelante.
 +
La última versión instalada actualmente es la '''0.7.53'''. Es posible utilizar el mismo archivo .osm.bz2 para evitar descargarlo nuevamente, éste lo encontraremos dentro de la carpeta de la versión anterior.
 +
 +
En la edición del archivo /etc/apache2/sites-available/000-default.conf debemos cambiar la ruta '''[YOUR_EXEC_DIR]''' por la nueva generada por la descompresión de la nueva versión.
 +
 +
Para encontrar las nuevas versiones de Overpass es necesario visitar http://dev.overpass-api.de/releases/
 +
 +
= Arrancar web cuando páginas están en Django Python =
 +
 +
Cuando una VM se encuentra con una web en etapa de desarrollo con Django Python, para que ésta corra hay que hacer lo siguiente:
 +
 +
Primero entrar a la VM
 +
 +
<source lang="bash">
 +
ssh 146.155.17.18 -p 22022
 +
</source>
 +
 +
Posicionarse en la carpeta del proyecto (Ejemplo con VM de Gatherer)
 +
 +
<source lang="bash">
 +
cd hibridinterfaz
 +
</source>
 +
 +
Iniciar Screen, aplicación que abre una nueva terminal que es independiente a SSH
 +
 +
<source lang="bash">
 +
screen
 +
</source>
 +
 +
Correr el servidor de Django con el comando
 +
 +
<source lang="bash">
 +
python manage.py runserver
 +
</source>
 +
 +
Con esto ya la web está corriendo sin problemas, para salir de Screen hay que apretar '''Ctrl+a''' y luego '''Ctrl+d'''.
 +
 +
== VMs con Django ==
 +
 +
{| class="wikitable"
 +
! style="text-align: center;" | VM
 +
! style="text-align: center;" | Carpeta de proyecto
 +
|-
 +
| style="text-align: center;" | 18:22080
 +
| style="text-align: center;" | /home/csfuente/hibridinterfaz
 +
|-
 +
| style="text-align: center;" | 18:21080
 +
| style="text-align: center;" | /home/csfuente/Indicadores
 +
|-
 +
| style="text-align: center;" | 19:17080
 +
| style="text-align: center;" | /home/csfuente/wyp-django
 +
|}
 +
 +
= CartoDB =
 +
 +
== Levantar CartoDB cuando la máquina es encendida ==
 +
 +
Subir CartoDB es un poco tedioso pero es posible sin complicaciónes, lo primero es exportar lo siguiente: (copy/paste a la terminal)
 +
 +
<source lang="bash">
 +
export PATH=$PATH:/opt/rubies/ruby-2.2.3/bin
 +
export CPLUS_INCLUDE_PATH=/usr/include/gdal
 +
export C_INCLUDE_PATH=/usr/include/gdal
 +
export PATH=$PATH:/usr/include/gdal
 +
export PATH=$PATH:$PWD/node_modules/grunt-cli/bin
 +
</source>
 +
 +
En mi cuenta agregué esas lineas al archivo .bashrc para que se ejecuten cada vez que entro por ssh a la VM.
 +
Lo siguiente es ejecutar los procesos necesarios para que cartodb corra, para ello se ejecuta cada uno de ellos en una screen distinta (ya que no contamos con varias terminales por ssh)
 +
 +
<source lang="bash">
 +
cd /home/csfuente/
 +
screen
 +
redis-server
 +
</source>
 +
 +
'''ctrl+a''' y '''ctrl+d'''
 +
 +
<source lang="bash">
 +
cd cartodb
 +
screen
 +
bundle exec script/resque
 +
</source>
 +
 +
'''ctrl+a''' y '''ctrl+d'''
 +
 +
<source lang="bash">
 +
screen
 +
bundle exec thin start --threaded -p 3000 --threadpool-size 5
 +
</source>
 +
 +
'''ctrl+a''' y '''ctrl+d'''
 +
 +
<source lang="bash">
 +
cd /home/csfuente/Wireshark***
 +
screen
 +
node app.js development
 +
</source>
 +
 +
'''ctrl+a''' y '''ctrl+d'''
 +
 +
<source lang="bash">
 +
cd /home/csfuente/CartoDB-SQL-API
 +
screen
 +
node app.js development
 +
</source>
 +
 +
'''ctrl+a''' y '''ctrl+d'''
 +
 +
Con todo esto ahora podemos entrar a 146.155.17.18:3000 y usar cartodb.
 +
 +
== Puertos utilizados en .18 por cartodb ==
 +
 +
{| class="wikitable"
 +
! style="text-align: center;" | Puerto
 +
! style="text-align: center;" | Servicio
 +
|-
 +
| style="text-align: center;" | 18:3000
 +
| style="text-align: center;" | cartodb
 +
|-
 +
| style="text-align: center;" | 18:8080
 +
| style="text-align: center;" | cartodb-SQL-API
 +
|-
 +
| style="text-align: center;" | 18:8181
 +
| style="text-align: center;" | Wireshark
 +
|-
 +
| style="text-align: center;" | 18:6379
 +
| style="text-align: center;" | redis-server
 +
|}
 +
 +
= Obtener polígonos formato .poly de ciudades =
 +
 +
Gracias a las instrucciones dadas en https://github.com/JamesChevalier/cities podemos obtener el polígono de la ciudad solicitada, los pasos son los siguientes:
 +
 +
* Entrar a http://nominatim.openstreetmap.org/ y poner en el buscador la ciudad que estamos buscando
 +
* Al encontrarla, nos vamos a sus Detalles
 +
* Copiamos el número que aparece en OSM: Relation '''XXXXXX'''
 +
* Vamos a  http://polygons.openstreetmap.fr/ y pegamos éste número en '''Id of relation'''
 +
* Descargamos la información en el link '''poly''' correspondiente
 +
 +
= Migración OTP, Overpass en VM de WYP =
 +
 +
== Migración de OTP ==
 +
 +
Con el trabajo realizado ya de la instalación de OTP más arriba en esta wiki, se movió la carpeta en la cual fue compilado el repositorio junto con los graphs generados hasta entonces a la VM de WYP. los archivos quedaron en la carpeta /home/csfuente/OTP/ en donde se es posible ejecutar el servidor sin problemas.
 +
OTP al ser ejecutado, su servidor trabaja en el puerto 5050 por lo que se creó una nueva regla nat para la VM el cual se es posible llegar a ella mediante el puerto 17050 en el servidor .19.
 +
 +
El comando para ser ejecutado en esta VM es:
 +
 +
<source lang="bash">
 +
./home/csfuente/OTP/otp --server --basePath /home/csfuente/OTP/ --router chile --preFlight --autoScan --autoReload --port 5050
 +
</source>
 +
 +
== Migración de Overpass ==
 +
 +
Al igual que OTP, Overpass no es necesario ser recompilado. Los archivos de Overpass fueron trasladados a la VM a la carpeta /home/csfuente/Overpass/ y al ser ejecutado funciona directamente en el puerto 80. La regla nat fue modificada para apache redirigiendo lo del puerto 80 al puerto 17051 del servidor .19.
 +
 +
Tambien fue necesario agregar las reglas de Apache2 correspondientes (también en esta misma wiki)
 +
 +
Para ejecutarlo en esta VM es necesario escribir en la terminal:
 +
 +
<source lang="bash">
 +
rm /home/csfuente/Overpass/db/osm3s* || true
 +
rm /dev/shm/osm3s* || true
 +
cd /home/csfuente/Overpass && bin/dispatcher --osm-base --meta --db-dir="db"
 +
</source>
 +
 +
== Modificaciones en arranque de WYP ==
 +
 +
WYP estaba funcionando bajo Nginx, el cual se encargaba de redirigir el puerto 8000 al puerto 80 para que fuera leido por .19 en su puerto 17080. Para no modificar la URL de WYP fue necesario volver a cambiar a apache2 y ejecutar Django en el puerto 81. Crear una nueva regla nat para que leyera el puerto 81 de la VM y fuera ejecutado en 17080. De esta forma la URL no cambia para éste.
 +
 +
El nuevo comando para ejeutar WYP es:
 +
 +
<source lang="bash">
 +
cd /home/csfuente/wyp-django/ && python manage.py runserver 0.0.0.0:81
 +
</source>
 +
 +
== Ejecutar todos los procesos al iniciar la VM ==
 +
 +
Para ello fue necesario editar el archivo '''/etc/rc.local'''
 +
 +
<source lang="bash">
 +
#!/bin/sh -e
 +
#
 +
# rc.local
 +
#
 +
# This script is executed at the end of each multiuser runlevel.
 +
# Make sure that the script will "exit 0" on success or any other
 +
# value on error.
 +
#
 +
# In order to enable or disable this script just change the execution
 +
# bits.
 +
#
 +
# By default this script does nothing.
 +
 +
# Overpass
 +
rm /home/csfuente/Overpass/db/osm3s* || true
 +
rm /dev/shm/osm3s* || true
 +
cd /home/csfuente/Overpass && bin/dispatcher --osm-base --meta --db-dir="db" &
 +
 +
# WYP
 +
cd /home/csfuente/wyp-django/ && python manage.py runserver 0.0.0.0:81 &
 +
 +
# OTP
 +
./home/csfuente/OTP/otp --server --basePath /home/csfuente/OTP/ --router chile --preFlight --autoScan --autoReload --port 5050 &
 +
 +
exit 0
 +
~       
 +
</source>
 +
 +
= Actualizar archivo OSM con un archivo OSC =
 +
 +
Para actualizar la información con calles/nodos/parques nuevos en un arhivo de formato OSM, es necesario generar un archivo OSC. Para combinarlos hay que usar el comando
 +
 +
<source lang="bash">
 +
osmchange -i=old.osm changefile.osc >new.osm
 +
</source>
 +
 +
== Link de interes ==
 +
 +
http://wiki.openstreetmap.org/wiki/Osmchange_(program)
 +
http://wiki.openstreetmap.org/wiki/Osmchange
 +
 +
= Instalación Nominatim 3.0 =
 +
 +
Nominatim 3.0 fue instalado en la VM 18:22081. Para la instalación se siguieron los pasos a continuación.
 +
 +
La VM 18:22 se encontraba con Ubuntu 14.04 LTS, lo primero que se hizo fue actualizar a Ubuntu 16 para utilizar las últimas dependencias, para eso ejecutamos:
 +
 +
<source lang="bash">
 +
sudo apt-get update
 +
sudo apt-get upgrade
 +
sudo apt-get dist-upgrade
 +
sudo do-release-upgrade
 +
</source>
 +
 +
Posterior a esto solo hay que seguir las indicaciones en pantalla.
 +
 +
Luego, comienza la instalación de Nominatim, se siguieron las instrucciones de [https://github.com/openstreetmap/Nominatim/blob/master/docs/Install-on-Ubuntu-16.md Github Nominatim], lo primero es instalar las dependencias
 +
 +
<source lang="bash">
 +
sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
 +
                        libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
 +
                        libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev \
 +
                        postgresql-server-dev-9.5 postgresql-9.5-postgis-2.2 postgresql-contrib-9.5 \
 +
                        apache2 php php-pgsql libapache2-mod-php php-pear php-db \
 +
                        php-intl git
 +
</source>
 +
 +
Se crea el usuario 'nominatim'.
 +
 +
<source lang="bash">
 +
sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim
 +
</source>
 +
 +
Para hacer las cosas más comodas ejecutamos estos export para ahorrarnos text más adelante
 +
 +
<source lang="bash">
 +
export USERNAME=nominatim
 +
export USERHOME=/srv/nominatim
 +
</source>
 +
 +
Permitimos que la carpeta de nominatim sea leida por el server
 +
 +
<source lang="bash">
 +
chmod a+x $USERHOME
 +
</source>
 +
 +
Ahora, debemos crear la base de datos en postgres, el usuario que manejará la base de datos será nominatim, por lo que ejecutamos
 +
 +
<source lang="bash">
 +
sudo -u postgres createuser -s $USERNAME
 +
sudo -u postgres createuser www-data
 +
sudo systemctl restart postgresql
 +
</source>
 +
 +
buscamos y editamos el archivo fe configuración de postgres llamado ''postgresql.conf'' y editamos los valores
 +
 +
<source lang="bash">
 +
shared_buffers (2GB)
 +
maintenance_work_mem (10GB)
 +
work_mem (50MB)
 +
effective_cache_size (24GB)
 +
synchronous_commit = off
 +
checkpoint_segments = 100 # only for postgresql <= 9.4
 +
checkpoint_timeout = 10min
 +
checkpoint_completion_target = 0.9
 +
</source>
 +
 +
Creamos el archivo de configuración para apache en un archivo aparte en ''conf-available'' ejecutando el siguiente comando
 +
 +
<source lang="bash">
 +
sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
 +
<Directory "$USERHOME/Nominatim/build/website">
 +
  Options FollowSymLinks MultiViews
 +
  AddType text/html  .php
 +
  DirectoryIndex search.php
 +
  Require all granted
 +
</Directory>
 +
 +
Alias /nominatim $USERHOME/Nominatim/build/website
 +
EOFAPACHECONF
 +
sudo a2enconf nominatim
 +
sudo systemctl restart apache2
 +
</source>
 +
 +
Recién ahora pasamos a la instalación de Nominatim, nos vamos al home de nominatim, copiamos el repositorio y ejecutamos los siguientes comandos
 +
 +
<source lang="bash">
 +
cd $USERHOME
 +
git clone --recursive git://github.com/openstreetmap/Nominatim.git
 +
cd Nominatim
 +
mkdir build
 +
cd build
 +
cmake $USERHOME/Nominatim
 +
make
 +
tee settings/local.php << EOF
 +
<?php
 +
@define('CONST_Website_BaseURL', '/nominatim/');
 +
EOF
 +
</source>
 +
 +
Ahora, debemos importar la información de OSM, para ello descargamos el archivo .osm correspondiente, OJO, el archivo debe estar en formato .osm.
 +
 +
<source lang="bash">
 +
wget http://download.geofabrik.de/south-america/chile-latest.osm.bz2
 +
bzip2 -d chile-latest.osm.bz2
 +
./utils/setup.php --osm-file chile.latest.osm --all 2>&1 | tee setup.log
 +
</source>
 +
 +
Con esto tenemos Nominatim corriendo con la data de Chile. Para agregar más información (como la data de OSM de Canadá) es necesario limpiar la base de datos de postgres, unir todos los archivos .osm en uno solo y  ejecutar el último comando señalada en esta documentación con el nuevo nombre del archivo .osm.
 +
 +
= Mapas de OSM en Geonode =
 +
 +
Es posible publicar mapas actualizados en geonode desde la data obtenida directamente de los servidores de OSM, se utilizó [http://docs.geonode.org/en/latest/tutorials/advanced/adv_data_mgmt/osm.html#using-the-osm-extract-script-to-download-osm-data-into-postgis esta guía] para poder realizar la actualización. Se debieron utilizar 2 VMs para este trabajo debido a que geonode está instalado en Ubuntu 12.04 y tiene conflictos con los paquetes de postgres el cual, al tratar de instalar una nueva versión de éste, solicita eliminar geonode (lo cual obviamente no queremos) por lo que el trabajo de osmosis y transformación de los datos a sql se realiza en la VM 18:22 (Gatherer). Se construyeron dos script, uno para la VM 18:22 y otro para la 19:13 (Geonode), Se explicarán los script en el orden en que se ejecutan.
 +
 +
== Script de 18:22 ==
 +
 +
Este script cumple con tres funciones principales, descargar la información de las calles de los servidores de OSM para Chile, extraer la información necesaria (tales como estaciones de policía, calles principales, hospitales, etc.) y posteriormente esta información es transformada a un archivo sql para ser insertada en una base de datos. El script construido es el siguiente:
 +
 +
<source lang="bash">
 +
DB=/home/csfuente/hibridinterfaz/media/sql_osm
 +
SETNAME=/home/csfuente/hibridinterfaz/media/sql
 +
 +
# Creacion del directorio
 +
 +
mkdir -p /home/csfuente/hibridinterfaz/media/sql
 +
 +
# Descarga de archivo latest.pbf
 +
 +
curl -g -o /home/csfuente/hibridinterfaz/media/sql/latest.pbf http://download.geofabrik.de/south-america/chile-latest.osm.pbf
 +
 +
# Construccion de archivos pbf
 +
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="aeroway.aerodrome" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="aeroway.aerodrome" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/aerodromes_polygon.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="place.city,place.borough,place.suburb,place.quarter,place.neighbourhood,place.city_block,place.plot,place.town,place.village,place.hamlet,place.isolated_dwelling,place.farm,place.allotments" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "highway=*" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes amenity=bank,atm,bureau_de_change --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/banks.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "building=*"  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/buildings.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways landuse=residential,allotments,cemetery,construction,depot,garages,brownfield,commercial,industrial,retail --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/built_up_areas.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=city" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/cities.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.farm,landuse.farmland,landuse.farmyard,landuse.livestock" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/farms.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.forest,natural.wood" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/forest.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.grass,landuse.meadow,landuse.scrub,landuse.village_green,natural.scrub,natural.heath,natural.grassland" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/grassland.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes aeroway=helipad,heliport --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/helipads.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="tourism.hotel,tourism.hostel,tourism.motel,tourism.guest_house" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/hotels.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf reject-relations --tf accept-ways waterway=* --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/inland_water_line.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways natural=water,wetland,bay landuse=reservoir,basin,salt_pond waterway=river,riverbank --tf accept-relations natural=water,wetland,bay landuse=reservoir,basin,salt_pond waterway=river,riverbank --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf" --wkv keyValueList="highway.motorway,highway.trunk,highway.primary" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/main_roads.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.baby_hatch,amenity.clinic,amenity.dentist,amenity.doctors,amenity.hospital,amenity.nursing_home,amenity.pharmacy,amenity.social_facility,amenity.veterinary,amenity.blood_donation" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/medical_point.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/buildings.pbf" --wkv keyValueList="amenity.baby_hatch,amenity.clinic,amenity.dentist,amenity.doctors,amenity.hospital,amenity.nursing_home,amenity.pharmacy,amenity.social_facility,amenity.veterinary,amenity.blood_donation" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/medical_polygon.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf" --wkv keyValueList="highway.footway,highway.bridleway,highway.steps,highway.path" --used-node  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/paths.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.police" --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/police_stations.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "railway=*" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/railways.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.school,amenity.university,amenity.college,amenity.kindergarten,amenity.library,amenity.public_bookcase,amenity.music_school,amenity.driving_school,amenity.language_school" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/school_point.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="amenity.school,amenity.university,amenity.college,amenity.kindergarten,amenity.library,amenity.public_bookcase,amenity.music_school,amenity.driving_school,amenity.language_school" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/schools_polygon.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=town" --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/towns.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf"  --wkv keyValueList="highway.track" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/tracks.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes amenity=bicycle_parking,bicycle_repair_station,bicycle_rental,boat_sharing,bus_station,car_rental,car_sharing,car_wash,charging_station,ferry_terminal,fuel,grit_brin,motorcycle_parking,parking,parking_entrance,parking_space,taxi public_transport=* railway=halt,station,subway_entrance,tram_stop waterway=dock,boatyard --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/transport_point.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf reject-ways --tf reject-relations --tf accept-nodes amenity=shower,toilets,water_point,drinking_water,water_in_place --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/utilities.pbf"
 +
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=village" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/villages.pbf"
 +
 +
# Construccion de archivos sql
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/aerodromes_point.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/aerodromes_polygon.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/aerodromes_polygon.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/all_places.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/all_places.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/all_roads.sql /home/csfuente/hibridinterfaz/media/sql/all_roads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/all_roads.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/banks.sql /home/csfuente/hibridinterfaz/media/sql/banks.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/banks.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/buildings.sql /home/csfuente/hibridinterfaz/media/sql/buildings.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/buildings.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/built_up_areas.sql /home/csfuente/hibridinterfaz/media/sql/built_up_areas.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/built_up_areas.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/cities.sql /home/csfuente/hibridinterfaz/media/sql/cities.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/cities.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/farms.sql /home/csfuente/hibridinterfaz/media/sql/farms.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/farms.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/forest.sql /home/csfuente/hibridinterfaz/media/sql/forest.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/forest.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/grassland.sql /home/csfuente/hibridinterfaz/media/sql/grassland.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/grassland.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/helipads.sql /home/csfuente/hibridinterfaz/media/sql/helipads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/helipads.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/hotels.sql /home/csfuente/hibridinterfaz/media/sql/hotels.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/hotels.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/inland_water_line.sql /home/csfuente/hibridinterfaz/media/sql/inland_water_line.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/inland_water_line.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.sql /home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/inland_water_polygon.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/main_roads.sql /home/csfuente/hibridinterfaz/media/sql/main_roads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/main_roads.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/medical_point.sql /home/csfuente/hibridinterfaz/media/sql/medical_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/medical_point.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/medical_polygon.sql /home/csfuente/hibridinterfaz/media/sql/medical_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/medical_polygon.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/paths.sql /home/csfuente/hibridinterfaz/media/sql/paths.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/paths.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/police_stations.sql /home/csfuente/hibridinterfaz/media/sql/police_stations.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/police_stations.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/railways.sql /home/csfuente/hibridinterfaz/media/sql/railways.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/railways.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/schools_point.sql /home/csfuente/hibridinterfaz/media/sql/school_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/schools_point.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/schools_polygon.sql /home/csfuente/hibridinterfaz/media/sql/schools_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/schools_polygon.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/towns.sql /home/csfuente/hibridinterfaz/media/sql/towns.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/towns.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/tracks.sql /home/csfuente/hibridinterfaz/media/sql/tracks.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/tracks.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/transport_point.sql /home/csfuente/hibridinterfaz/media/sql/transport_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/transport_point.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/utilities.sql /home/csfuente/hibridinterfaz/media/sql/utilities.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/utilities.ini
 +
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/villages.sql /home/csfuente/hibridinterfaz/media/sql/villages.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/villages.ini
 +
</source>
 +
 +
== Script de 19:13 ==
 +
 +
Antes de explicar el script, es necesario crear la base de datos en donde se trabajará, para ello se creó la base de datos 'Chile_osm' en postgres
 +
 +
<source lang="bash">
 +
createdb Chile_osm \
 +
psql -d Chile_osm -c 'create extension postgis;'; \
 +
psql -d Chile_osm -c 'create extension hstore;';
 +
</source>
 +
 +
Esta base de datos la leemos en geoserver, para ello creamos un nuevo Store y un nuevo Workspace especial para esta data. Acá la llamé ''osm''.
 +
 +
Con ésto, el script generado para esta VM funciona de forma recursiva. Recupera el archivo sql generado en la otra VM, lo codifica para que no existan problemas con los textos, traspasa la data a la base de datos, las ordena y las dispone para que sean leidas. Hace esto para cada uno de los archivos sql generados anteriormente. Por lo que el script queda como
 +
 +
<source lang="bash">
 +
curl -g  -o /home/csfuente/osmex/Chile/aerodromes_point.sql1 http://146.155.17.18:22080/media/sql/aerodromes_point.sql
 +
iconv -f latin1 -t utf-8 /home/csfuente/osmex/Chile/aerodromes_point.sql1 > /home/csfuente/osmex/Chile/aerodromes_point.sql
 +
psql -f /home/csfuente/osmex/Chile/aerodromes_point.sql Chile_osm
 +
psql -f /home/csfuente/osmex/conf/aerodromes_point_alter.sql Chile_osm
 +
psql -f /home/csfuente/osmex/conf/clean.sql Chile_osm
 +
 +
.
 +
.
 +
.
 +
</source>
 +
 +
Finalmente debemos actualizar las capas en geonode para que sean reconocidas por éste, por lo que al final del script se ejecuta el comando
 +
 +
<source lang="bash">
 +
geonode updatelayers --ignore-errors -w osm
 +
</source>
 +
 +
El que nos permite solicitar la actualización de todas las capas del Workspace osm.
 +
 +
== Horas en las cuales se ejecutan los script ==
 +
 +
Ambos script se ejecutan de forma de cron, éstos funcionan todos los lunes a las 4:00 AM y 5:00 AM respectivamente.

Latest revision as of 12:26, 4 August 2017

Documentación instalación de CartoDB

Todo se encuentra acá http://wiki.geosteiniger.cl/mediawiki-1.22.7/index.php/Installing_CartoDB_for_CEDEUS#Trabajo_Cristian

Recuperación de Grub de servidor

Todo acá http://wiki.geosteiniger.cl/mediawiki-1.22.7/index.php/Solving_Ubuntu_GRUB_issue

Configuración UPS

Configuración de red

La UPS se encuentra configurada por red desde el servidor 146.155.17.19 por la salida de red "em2". Su configuración de red es:

 IP:      192.168.100.2
 Mask:    255.255.255.0
 Gateway: 192.168.100.1

La configuración en la UPS se realizó mediante un cable USB-Serial hacia el servidor y la comunicación se hizo por minicom con la configuración:

 A -    Serial Device      : /dev/ttyUSB0                              |
 B - Lockfile Location     : /var/lock                                 |
 C -   Callin Program      :                                           |
 D -  Callout Program      :                                           |
 E -    Bps/Par/Bits       : 9600 8N1                                  |
 F - Hardware Flow Control : No                                        |
 G - Software Flow Control : No

Por lo mismo, la configuración de la boca de red "em2" debe tener la siguiente IP para que funcione correctamente:

 IP: 192.168.100.1
 Mask: 255.255.255.0

Por otro lado, para la configuración del servidor es necesario que se fije estáticamente la IP a la tarjeta de red em2. Para ello editamos el archivo /etc/network/interfaces y agregamos las líneas:

 auto em2
   iface em2 inet static
   address 192.168.100.1

Configuración en el servidor

Se decide realizar la instalación con Nat, para ello lo instalamos mediante:

 apt-get install nut nut-monitor nut-cgi nut-snmp snmp

Luego, se verifica si el usuario nut fue creado posterior a la instalación:

 root@cedeusgeonode:~# id nut
 uid=109(nut) gid=117(nut) groups=117(nut),20(dialout)

Luego se edita el archivo /etc/nut/ups.conf para indicar el driver a utilizar para detectar la UPS, en nuestro caso es el siguiente:

 [trust]
   driver = snmp-ups
   port = 192.168.100.2
   community = public
   snmp_version = v1
   pollfreq = 15
   privProtocol=AES
   desc = "Dispositivo UPS APC SNMP v1"

Luego iniciamos el servicio

 upsdrvctl start

Lo siguiente es configurar los servicios correspondientes que monitoreen la UPS, con tal de que apaguen el servidor cuando no exista energía.

Editamos el archivo /etc/nut/upsd.user y agregamos

 [root]  
       password=t3st  
       actions = SET  
       instcmds = ALL  
 
 [upsmon]  
       password=pass  
       upsmon master  
       upsmon slave  

Con esto estamos agregando usuarios que permitan la interacción entre los módulos. Luego para upsmon editamos el archivo /etc/nut/upsmon.conf y modificamos las siguientes líneas:

 MONITOR snmpv1 1 upsmon pass master  
 POWERDOWNFLAG /etc/killpower  
 SHUTDOWNCMD "/sbin/shutdown -h now" 

Damos los permisos necesarios a los archivos para que sean ejecutados correctamente

 chown root:nut /etc/nut/*
 chmod 640 /etc/nut/*

Finalmente le decimos que inicie los servicios cuando prenda el servidor, creamos un archivo llamado /etc/default/nut y le agregamos:

 START_UPSD=yes  
 START_UPSMON=yes

y editamos /etc/nut/nut.conf

 MODE=standalone

Se espera que con esta configuración, el servidor que está conectado directamente con la UPS se apague cuando la UPS esté con poca energía, sin embargo falta aún la configuración del otro servidor, el cual se debe hacer modificando las configuraciones de upsd y upsmon respectivamente.

Ver estado de la UPS

Para ver en que estado se encuentra la UPS, podemos ver todos los detalles gracias al comando:

 upsc snmpv1

En caso de que no exista conexión, puede ser a causa de que el dirver no se encuentre corriendo, la solución para levantar dicho driver es ejecutar

 upsdrvctr start

Agregar -18 y .14 al apagado

http://2tazasdelinux.blogspot.cl/2014/11/controlar-nuestro-sai-con-nut.html

Mantención VM MiCiudad

El problema que contenía la VM fue que no se podía instalar ni actualizar ningún programa debido a que la carpeta /boot estaba al 100%, esto es causado por reiteradas actualizaciones de kernel (es normal) en donde se guarda una copia del kernel instalado anteriormente, por lo que hay que borrar dichos respaldos.

Al utilizar el comando df -h vemos el disco lleno. Basta con ejecutar los siguientes comandos con permisos de administrador:

 dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;do apt-get -y remove $n;done
 apt-get autoclean

Luego de esto ya es posible la actualización e instalación de aplicaciones via apt-get


omeka.org

Ubuntu

Se propuso la instalación del servicio Omeka, para ello utilizamos una VM con Ubuntu, en el caso de prueba se utiliza Ubuntu 15.04.

Primero, con permisos de administrador, se actualiza la VM y se instalan las dependencias para Omeka

 sudo apt-get update
 sudo apt-get install -y unzip php5 php5-mysql apache2 mysql-server imagemagick

Luego se descargan los archivos para la instalación de Omeka

 cd
 wget http://omeka.org/files/omeka-2.3.1.zip
 unzip omeka-2.3.1.zip

Se mueven los archivos al directorio web

 sudo mv omeka-2.0/* /var/www/
 sudo mv omeka-2.0/.htaccess /var/www/
 sudo rm /var/www/index.html

Configurar la base de datos, creando un usuario y sus permisos

 sudo groupadd webdev
 sudo usermod -a -G webdev ubuntu
 cd /var
 sudo chown -R root.webdev www 
 sudo chmod 775 www
 cd /var/www 
 sudo find . -type d | xargs sudo chmod 775
 sudo find . -type f | xargs sudo chmod 664
 sudo find files -type d | xargs sudo chmod 777
 sudo find files -type f | xargs sudo chmod 666

Crear la base de datos

 mysql -u root -p
 create database omeka;
 grant all privileges on omeka.* to 'ubuntu' identified by 'reverse';
 flush privileges;
 quit;

Editar el archivo db.ini modificando

 [database]
 host = "localhost"
 username = "ubuntu"
 password = "reverse"
 dbname = "omeka"
 prefix = "omeka_"

Finalmente activar mod_rewrite

 sudo a2enmod rewrite

Editar el archivo /etc/apache2/sites-available/default cambiando "AllowOverride None" a "AllowOverride All".

Listo :)

Lamentablemente esta instalación trae problemas con la activación de mod_rewrite.

Fedora Server 23

Lo primero son las dependencias

 dnf install unzip mysql-server php php-mysql ImageMagick
 chkconfig --levels 235 httpd on
 chkconfig --levels 235 mariadb on
 setenforce 0
 systemctl start mariadb
 mysql_secure_installation

Colocar contraseña para cuenta de administrador en base de datos

 mysql -u root -p
 mysql> use mysql
 mysql> insert into user(host, user, password) values('localhost','omeka_user',password('test'));
 mysql> insert into db(host,db,user,Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values ('localhost','omeka_db','omeka_user','Y','Y','Y','Y','Y','Y');
 mysql> quit
 mysqladmin -u root -p create omeka_db
 mysqladmin -u root -p reload
 mysql> ALTER DATABASE omeka_db DEFAULT CHARACTER SET 'utf8' DEFAULT COLLATE 'utf8_unicode_ci';
 mysql> quit


Editar el archivo /etc/httpd/conf/httpd.conf, cambiando el valor de AllowOverride que se encuentra dentro del bloque <Directory "/var/www/html"> por All.

 systemctl restart httpd
 wget http://omeka.org/files/omeka-2.3.1.zip

descomprimir archivo zip y renombrar carpeta por omeka

editar el archivo omeka/db.ini con sus respectivos datos:

 [database]
 host     = "localhost"
 username = "omeka_user"
 password = "test"
 name     = "omeka_db"
 prefix   = "omeka_"
 ;port     = ""

Extractor de tweets

dependencias de trabajo:

 sudo apt-get install git vim

dependencias: tweepy y psycopg2

 sudo pip install tweepy
 sudo apt-get install python-psycopg2

También es necesario instalar y crear un usuario en postgresql

 sudo apt-get install postgresql postgresql-contrib
 sudo -i -u postgres
 createuser --interactive
 # csfuente as superuser
 createdb csfuente
 logout

luego clonar el repositorio git

 git clone http://146.155.17.18:18080/csfuente/twitter_extractor.git
 cd twitter_extractor

Aquí tenemos dos archivos que ejecutar, primero es main.py el cual, al ser ejecutado por primera vez hay que poner un -r al final para crear la tabla de la base de datos (también borra todo dato anterior).

 python main.py <Cuenta de twitter> [-r]

Luego que finalice el anterior, se debe ejecutar el streaming, para recepcionar los tweets que vendrán.

 python stream <Cuenta de twitter>

Ejemplo

 python main.py Cristian_F_G -r
 python main.py Cristian_F_G

OwnCloud

backup location after clicking on OwnCloud update: /var/www/html/owncloud/data/updater_backup/8.2.2.2-8fa08547

Variable for URL name:

'overwrite.cli.url' => 'http://146.155.17.18:17080/owncloud',

OpenTripPlanner

Instalación

Son necesarios dos programas escenciales, Java 8 y Maven mayor a 3.1.1

Para Java ejecutamos

 sudo add-apt-repository ppa:openjdk-r/ppa
 sudo apt-get update
 sudo apt-get install openjdk-8-jdk

Para Maven

 sudo apt-get install gdebi
 wget http://ppa.launchpad.net/natecarlson/maven3/ubuntu/pool/main/m/maven3/maven3_3.2.1-0~ppa1_all.deb
 sudo gdebi maven3_3.2.1-0~ppa1_all.deb
 sudo ln -s /usr/share/maven3/bin/mvn /usr/bin/mvn

Luego necesitamos git

 sudo apt-get install git

Y finalmente procedemos con la copia e instalación de OpenTripPlanner

 git clone https://github.com/opentripplanner/OpenTripPlanner.git
 cd OpenTripPlanner
 mvn clean package -DskipTests

Creamos la carpeta con la data

 mkdir /home/csfuente/otp
 cd /home/csfuente/otp

Descargamos la data en esta carpeta....

 wget http://www.dtpm.cl/descargas/gtfs/GTFS.zip

Ejecutamos OTP desde su directorio con el comando

 ./otp --build /home/csfuente/otp --inMemory

Y para todo Chile:

 ./otp --build /home/csfuente/otpTransantiago --inMemory

Actualizar la información

Para actualizar la información es necesario ir revisando los cambios de los archivos GTFS que se encuentran disponibles en la red, cuando notemos que uno es más nuevo es necesario descargarlo y ubicarlo en la carpeta que contiene todos los archivos similares (Actualmente se está utilizando la carpeta /home/csfuente/otpTransantiago ) por lo que entramos a dicha carpeta y descargamos los datos con wget. Finalmente reiniciamos la VM, esperamos a que inicie (cerca de ~10 minutos) y estará con todos los datos actualizados.

OSM + Overpass

Instalación de servidor de OSM

Para la instalación se utiliza una VM con Ubuntu 14.04. Las instrucciones fueron sacadas de:

* https://switch2osm.org/serving-tiles/manually-building-a-tile-server-14-04/

Y actualizadas con la nueva versión de osm2pgsql

* https://github.com/openstreetmap/osm2pgsql

Lo primero es instalar las dependencias necesarias para proceder con la instalación de los componentes que utiliza OSM.

 sudo apt-get install libboost-all-dev subversion git-core tar unzip wget bzip2 build-essential \
   autoconf libtool libxml2-dev libgeos-dev libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node \
   munin libprotobuf-c0-dev protobuf-c-compiler libfreetype6-dev libpng12-dev libtiff4-dev libicu-dev \
   libgdal-dev libcairo-dev libcairomm-1.0-dev apache2 apache2-dev libagg-dev liblua5.2-dev ttf-unifont \
   lua5.1 liblua5.1-dev libgeotiff-epsg node-carto

Luego hay que instalar Postgresql y postgis

 sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.3-postgis-2.1

Ahora es necesario crear la base de datos, para ello necesitaremos de un usuario en postgres, por ahora se utilizará 'username' para la documentación.

 sudo -u postgres -i
 createuser username
 createdb -E UTF8 -O username gis
 exit

Lo mismo para el sistema Unix

 sudo useradd -m username
 sudo passwd username

Creamos las tablas de postgres y las asignamos al usuario

 sudo -u postgres psql
 \c gis
 CREATE EXTENSION postgis;
 ALTER TABLE geometry_columns OWNER TO username;
 ALTER TABLE spatial_ref_sys OWNER TO username;
 \q
 exit

Pasamos a la instalación de osm2pgsql, para ello crearemos la carpeta 'src' en la raiz de root para adjuntar los archivos

 mkdir ~/src
 cd ~/src
 git clone https://github.com/openstreetmap/osm2pgsql.git

Instalamos sus dependencias

 sudo apt-get install make cmake g++ libboost-dev libboost-system-dev \
   libboost-filesystem-dev libexpat1-dev zlib1g-dev \
   libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev lua5.2 \
   liblua5.2-dev

Compilamos e instalamos

 mkdir build && cd build
 cmake ..
 make
 sudo make install

Procedemos a instalar Mapnik

 cd ~/src
 git clone git://github.com/mapnik/mapnik
 cd mapnik
 git branch 2.2 origin/2.2.x
 git checkout 2.2
 python scons/scons.py configure INPUT_PLUGINS=all OPTIMIZATION=3 SYSTEM_FONTS=/usr/share/fonts/truetype/
 make
 sudo make install
 sudo ldconfig

Podemos verificar que Mapnik funciona con

 python
 >>> import mapnik
 >>>

Ahora la instalación de mod_tile y render

 cd ~/src
 git clone git://github.com/openstreetmap/mod_tile.git
 cd mod_tile
 ./autogen.sh
 ./configure
 make
 sudo make install
 sudo make install-mod_tile
 sudo ldconfig

Se crea la carpeta /usr/local/share/maps/style para los archivos stylesheet y los recursos necesarios, además instalamos y configuramos OSM Bright

 sudo mkdir -p /usr/local/share/maps/style
 sudo chown username /usr/local/share/maps/style
 cd /usr/local/share/maps/style
 wget https://github.com/mapbox/osm-bright/archive/master.zip
 wget http://data.openstreetmapdata.com/simplified-land-polygons-complete-3857.zip
 wget http://data.openstreetmapdata.com/land-polygons-split-3857.zip
 mkdir ne_10m_populated_places_simple
 cd ne_10m_populated_places_simple
 wget http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places_simple.zip
 unzip ne_10m_populated_places_simple.zip
 rm ne_10m_populated_places_simple.zip
 cd ..
 unzip '*.zip'
 mkdir osm-bright-master/shp
 mv land-polygons-split-3857 osm-bright-master/shp/
 mv simplified-land-polygons-complete-3857 osm-bright-master/shp/
 mv ne_10m_populated_places_simple osm-bright-master/shp/
 cd osm-bright-master/shp/land-polygons-split-3857
 shapeindex land_polygons.shp
 cd ../simplified-land-polygons-complete-3857/
 shapeindex simplified_land_polygons.shp
 cd ../..

Ahora configuramos OSM Bright

 vim osm-bright/osm-bright.osm2pgsql.mml

Acá hay que buscar las direcciones que se encuentran al lado derecho del tag 'file' y cambiar la dirección por la ruta de los archivos que cambiamos anteriormente, además agregamos su característica de 'type' tal como se muestra a continuación

 "file": "/usr/local/share/maps/style/osm-bright-master/shp/land-polygons-split-3857/land_polygons.shp", 
 "type": "shape"
 "file": "/usr/local/share/maps/style/osm-bright-master/shp/simplified-land-polygons-complete-3857/simplified_land_polygons.shp", 
 "type": "shape",
 "file": "/usr/local/share/maps/style/osm-bright-master/shp/ne_10m_populated_places_simple/ne_10m_populated_places_simple.shp", 
 "type": "shape"

Hay que ser riguroso con no olvidar las comas finales de cada línea. Luego, en la sección 'ne-places', reemplazar 'srs' y 'srs-name' con esto:

 "srs": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"

Guardamos y salimos.

Nos queda ahora compilar todo para que Mapnik pueda ser utilizado. Creamos el archivo de configuración y cambiamos la linea de pointing de ~/Documents/Mapbox/project a /usr/local/share/maps/style y cambiamos dbname de osm a gis. Guardamos y salimos.

 cp configure.py.sample configure.py
 vim configure.py
 #Realizar cambios nombrados
 ./make.py
 cd ../OSMBright/
 carto project.mml > OSMBright.xml

Listo con ésto, ahora debemos configurar el render. Como root es necesario editar el archivo de configuración de render ubicado en /usr/local/etc/renderd.conf y cambiar las siguientes lineas en las secciones de render, mapnik y default.

 socketname=/var/run/renderd/renderd.sock
 plugins_dir=/usr/local/lib/mapnik/input
 font_dir=/usr/share/fonts/truetype/ttf-dejavu
 XML=/usr/local/share/maps/style/OSMBright/OSMBright.xml
 HOST=localhost

Las líneas que se encuentran comentadas con un ; deben ser descomentadas.

Ahora creamos las carpetas necesarias para usar el sistema de mod_tile

 sudo mkdir /var/run/renderd
 sudo chown username /var/run/renderd
 sudo mkdir /var/lib/mod_tile
 sudo chown username /var/lib/mod_tile

creamos en archivo /etc/apache2/conf-available/mod_tile.conf y agregamos una sola línea:

 LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so

Y editamos el archivo /etc/apache2/sites-available/000-default.conf agregando esto justo después del email del administrador

 LoadTileConfigFile /usr/local/etc/renderd.conf
 ModTileRenderdSocketName /var/run/renderd/renderd.sock
 # Timeout before giving up for a tile to be rendered
 ModTileRequestTimeout 0
 # Timeout before giving up for a tile to be rendered that is otherwise missing
 ModTileMissingRequestTimeout 30

Finalmente agregamos mod_tile a apache y lo reiniciamos

 sudo a2enconf mod_tile
 sudo service apache2 reload

Ahora debemos dejar mas potente postgres para que no funcione lento al momento de solicitar datos, editamos con sudo el archivo /etc/postgresql/9.3/main/postgresql.conf para cambiar:

 shared_buffers = 128MB
 checkpoint_segments = 20
 maintenance_work_mem = 256MB
 autovacuum = off

editamos tambien con sudo el archivo /etc/sysctl.conf para agregar una línea entre las definiciones de kernel

 # Increase kernel shared memory segments - needed for large databases
 kernel.shmmax=268435456

Reiniciamos la VM y luego ejecutamos:

 sudo sysctl kernel.shmmax

y verificamos que nos muestre el número que pusimos

Ahora nos queda cargar las tiles correspondientes al servidor, para este trabajo se utilizan solo las tiles de Chile.

 sudo mkdir /usr/local/share/maps/planet
 sudo chown username /usr/local/share/maps/planet
 cd /usr/local/share/maps/planet
 wget http://download.geofabrik.de/south-america/chile-latest.osm.pbf

Importamos la data descargada en la base de datos, el número que se encuentra luego de -C debe ser cambiado dependiendo de la memoria RAM disponible para la máquina. Se sugiere comenzar con un númerp 16000 y si excede la memoria entonces reducir dicho número. Para las pruebas fue posible ejecutar el comando con un -C de 3500

 osm2pgsql --slim -d gis -C 3500 --number-processes 3 /usr/local/share/maps/planet/chile-latest.osm.pbf

Tomar café y esperar. Dependiendo de la información a cargar, puede tardar entre 10 minutos hasta 24 horas.

Finalmente levantamos el servidor y lo hacemos correr, para ello ejecutamos

 sudo mkdir /var/run/renderd
 sudo chown username /var/run/renderd
 sudo -u username renderd -f -c /usr/local/etc/renderd.conf

y en una terminal diferente

 sudo service apache2 reload

Podemos probar que el servidor se encuentra corriendo entrando a la dirección http://localhost/osm_tiles/0/0/0.png para ver una imagen del mundo. Para otras imágenes es necesario rescatarlas con http://localhost/osm_tiles/{z}/{x}/{y}.png (localhost puede ser cambiado por la IP de la VM)

Instalación de Overpass API

La información fue extraida desde las siguientes páginas con modificación en los link de descarga de la data:

 http://overpass-api.de/no_frills.html
 http://overpass-api.de/full_installation.html

Los comandos utilizados fueron:

Primero son las dependencias base

 sudo apt-get install wget g++ make expat libexpat1-dev zlib1g-dev

Luego se realiza la instalación del software de Overpass, para ello se utiliza como directorio de ejecutables la misma base del archivo a descargar (perfectamente se podría cambiar)

 wget http://dev.overpass-api.de/releases/osm-3s_v0.7.52.tar.gz
 gunzip <osm-3s_v0.7.52.tar.gz | tar xvf -
 cd osm-3s_v0.7.52/
 ./configure --prefix="`pwd`"
 make CXXFLAGS="-O3"

Se crea la carpeta de la base de datos, se descarga la información y se adjunta a Overpass (Es posible solo utilizar Chile)

 mkdir db
 wget -O planet.osm.bz2 "http://planet.osm.org/planet/planet-latest.osm.bz2"
 bin/init_osm3s.sh planet.osm.bz2 "db/" "./" --meta

Con esto ya tenemos la data de Overpass, ahora lo uniremos a Apache, para ello lo instalamos y configuramos para cgi según http://wiki.openstreetmap.org/wiki/Overpass_API/Installation#Setting_up_the_Web_API

 sudo apt-get install apache2
 sudo a2enmod cgi
 sudo vim /etc/apache2/sites-available/000-default.conf

En el archivo agregamos las líneas faltantes para que nos quede algo similar a esto:

  <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ExtFilterDefine gzip mode=output cmd=/bin/gzip
    DocumentRoot [YOUR_HTML_ROOT_DIR]
    # This directive indicates that whenever someone types http://www.mydomain.com/api/ 
    # Apache2 should refer to what is in the local directory [YOUR_EXEC_DIR]/cgi-bin/
    ScriptAlias /api/ [YOUR_EXEC_DIR]/cgi-bin/
    # This specifies some directives specific to the directory: [YOUR_EXEC_DIR]/cgi-bin/
    <Directory "[YOUR_EXEC_DIR]/cgi-bin/">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      # For Apache 2.4:
      #  Order allow,deny
      # For Apache > 2.4:  
      Require all granted
      #SetOutputFilter gzip
      #Header set Content-Encoding gzip
    </Directory>
    ErrorLog /var/log/apache2/error.log
    # Possible values include: debug, info, notice, warn, error, crit, alert, emerg
    LogLevel warn
    CustomLog /var/log/apache2/access.log combined
  </VirtualHost>

Utilizando [YOUR_HTML_ROOT_DIR] por el que venía por defecto, [YOUR_EXEC_DIR] la dirección completa en donde compilamos Overpass y dejando sin editar ErrorLog y CustomLog.

Luego se reinicia el demonio de apache

 sudo service apache2 restart

Finalmente ejecutamos el proceso que nos permite recuperar los archivos que buscamos, para ello nos posicionamos en la carpeta del ejecutable en donde instalamos Overpass y escribimos el siguiente comando:

 sudo nohup bin/dispatcher --osm-base --meta --db-dir="db" &

Listo, ahora para poder recuperar un archivo xml con los cambios que deseamos probar, debemos ejecutar el siguiente comando en algún otro computador (o el mismo)

 wget --output-document=[nombre_archivo.xml] http://[IP_de_la_máquina]/api/interpreter?data=[código_a_ejecutar_en_overpass]

como ejemplo, en la misma máquina podemos ejecutar

 wget --output-document=test.xml http://localhost/api/interpreter?data=%3Cprint%20mode=%22body%22/%3E
<?xml version="1.0" encoding="UTF-8"?>
<osm-derived>
  <note>
    The data included in this document is from www.openstreetmap.org. It has there been collected 
    by a large group of contributors. For individual attribution of each item please refer to 
    http://www.openstreetmap.org/api/0.6/[node|way|relation]/#id/history 
  </note>
  <meta osm_base=""/>
 
</osm-derived>


PD: Los bancos de mi ciudad:

http://localhost/api/interpreter?data=%3Cosm-script%3E%3Cquery%20into=%22_%22%20type=%22node%22%3E%3Chas-kv%20k=%22amenity%22%20modv=%22%22%20v=%22bank%22/%3E%3Cbbox-query%20e=%22-71.72712922096252%22%20into=%22_%22%20n=%22-35.59095565308603%22%20s=%22-35.5972720219081%22%20w=%22-71.73655986785889%22/%3E%3C/query%3E%3Cprint%20e=%22%22%20from=%22_%22%20geometry=%22skeleton%22%20limit=%22%22%20mode=%22body%22%20n=%22%22%20order=%22id%22%20s=%22%22%20w=%22%22/%3E%3C/osm-script%3E
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="Overpass API">
<note>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</note>
<meta osm_base=""/>
 
  <node id="2540586850" lat="-35.5947536" lon="-71.7334849">
    <tag k="amenity" v="bank"/>
    <tag k="name" v="BancoEstado"/>
  </node>
  <node id="2540586923" lat="-35.5946228" lon="-71.7339302">
    <tag k="amenity" v="bank"/>
    <tag k="name" v="Banco de Chile"/>
  </node>
  <node id="2540635212" lat="-35.5956784" lon="-71.7295394">
    <tag k="amenity" v="bank"/>
    <tag k="name" v="Santander"/>
  </node>
 
</osm>

Actualización de Overpass

Para la actualización debemos realizar nuevamente una instalación completa por cada vez que sale una versión, por lo que tenemos que comenzar con descargar la nueva versión desde el comando wget en adelante. La última versión instalada actualmente es la 0.7.53. Es posible utilizar el mismo archivo .osm.bz2 para evitar descargarlo nuevamente, éste lo encontraremos dentro de la carpeta de la versión anterior.

En la edición del archivo /etc/apache2/sites-available/000-default.conf debemos cambiar la ruta [YOUR_EXEC_DIR] por la nueva generada por la descompresión de la nueva versión.

Para encontrar las nuevas versiones de Overpass es necesario visitar http://dev.overpass-api.de/releases/

Arrancar web cuando páginas están en Django Python

Cuando una VM se encuentra con una web en etapa de desarrollo con Django Python, para que ésta corra hay que hacer lo siguiente:

Primero entrar a la VM

ssh 146.155.17.18 -p 22022

Posicionarse en la carpeta del proyecto (Ejemplo con VM de Gatherer)

cd hibridinterfaz

Iniciar Screen, aplicación que abre una nueva terminal que es independiente a SSH

screen

Correr el servidor de Django con el comando

python manage.py runserver

Con esto ya la web está corriendo sin problemas, para salir de Screen hay que apretar Ctrl+a y luego Ctrl+d.

VMs con Django

VM Carpeta de proyecto
18:22080 /home/csfuente/hibridinterfaz
18:21080 /home/csfuente/Indicadores
19:17080 /home/csfuente/wyp-django

CartoDB

Levantar CartoDB cuando la máquina es encendida

Subir CartoDB es un poco tedioso pero es posible sin complicaciónes, lo primero es exportar lo siguiente: (copy/paste a la terminal)

export PATH=$PATH:/opt/rubies/ruby-2.2.3/bin
export CPLUS_INCLUDE_PATH=/usr/include/gdal
export C_INCLUDE_PATH=/usr/include/gdal
export PATH=$PATH:/usr/include/gdal
export PATH=$PATH:$PWD/node_modules/grunt-cli/bin

En mi cuenta agregué esas lineas al archivo .bashrc para que se ejecuten cada vez que entro por ssh a la VM. Lo siguiente es ejecutar los procesos necesarios para que cartodb corra, para ello se ejecuta cada uno de ellos en una screen distinta (ya que no contamos con varias terminales por ssh)

cd /home/csfuente/
screen
redis-server

ctrl+a y ctrl+d

cd cartodb
screen
bundle exec script/resque

ctrl+a y ctrl+d

screen
bundle exec thin start --threaded -p 3000 --threadpool-size 5

ctrl+a y ctrl+d

cd /home/csfuente/Wireshark***
screen
node app.js development

ctrl+a y ctrl+d

cd /home/csfuente/CartoDB-SQL-API
screen
node app.js development

ctrl+a y ctrl+d

Con todo esto ahora podemos entrar a 146.155.17.18:3000 y usar cartodb.

Puertos utilizados en .18 por cartodb

Puerto Servicio
18:3000 cartodb
18:8080 cartodb-SQL-API
18:8181 Wireshark
18:6379 redis-server

Obtener polígonos formato .poly de ciudades

Gracias a las instrucciones dadas en https://github.com/JamesChevalier/cities podemos obtener el polígono de la ciudad solicitada, los pasos son los siguientes:

  • Entrar a http://nominatim.openstreetmap.org/ y poner en el buscador la ciudad que estamos buscando
  • Al encontrarla, nos vamos a sus Detalles
  • Copiamos el número que aparece en OSM: Relation XXXXXX
  • Vamos a http://polygons.openstreetmap.fr/ y pegamos éste número en Id of relation
  • Descargamos la información en el link poly correspondiente

Migración OTP, Overpass en VM de WYP

Migración de OTP

Con el trabajo realizado ya de la instalación de OTP más arriba en esta wiki, se movió la carpeta en la cual fue compilado el repositorio junto con los graphs generados hasta entonces a la VM de WYP. los archivos quedaron en la carpeta /home/csfuente/OTP/ en donde se es posible ejecutar el servidor sin problemas. OTP al ser ejecutado, su servidor trabaja en el puerto 5050 por lo que se creó una nueva regla nat para la VM el cual se es posible llegar a ella mediante el puerto 17050 en el servidor .19.

El comando para ser ejecutado en esta VM es:

./home/csfuente/OTP/otp --server --basePath /home/csfuente/OTP/ --router chile --preFlight --autoScan --autoReload --port 5050

Migración de Overpass

Al igual que OTP, Overpass no es necesario ser recompilado. Los archivos de Overpass fueron trasladados a la VM a la carpeta /home/csfuente/Overpass/ y al ser ejecutado funciona directamente en el puerto 80. La regla nat fue modificada para apache redirigiendo lo del puerto 80 al puerto 17051 del servidor .19.

Tambien fue necesario agregar las reglas de Apache2 correspondientes (también en esta misma wiki)

Para ejecutarlo en esta VM es necesario escribir en la terminal:

rm /home/csfuente/Overpass/db/osm3s* || true
rm /dev/shm/osm3s* || true
cd /home/csfuente/Overpass && bin/dispatcher --osm-base --meta --db-dir="db"

Modificaciones en arranque de WYP

WYP estaba funcionando bajo Nginx, el cual se encargaba de redirigir el puerto 8000 al puerto 80 para que fuera leido por .19 en su puerto 17080. Para no modificar la URL de WYP fue necesario volver a cambiar a apache2 y ejecutar Django en el puerto 81. Crear una nueva regla nat para que leyera el puerto 81 de la VM y fuera ejecutado en 17080. De esta forma la URL no cambia para éste.

El nuevo comando para ejeutar WYP es:

cd /home/csfuente/wyp-django/ && python manage.py runserver 0.0.0.0:81

Ejecutar todos los procesos al iniciar la VM

Para ello fue necesario editar el archivo /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
 
# Overpass
rm /home/csfuente/Overpass/db/osm3s* || true
rm /dev/shm/osm3s* || true
cd /home/csfuente/Overpass && bin/dispatcher --osm-base --meta --db-dir="db" &
 
# WYP
cd /home/csfuente/wyp-django/ && python manage.py runserver 0.0.0.0:81 &
 
# OTP
./home/csfuente/OTP/otp --server --basePath /home/csfuente/OTP/ --router chile --preFlight --autoScan --autoReload --port 5050 &
 
exit 0
~

Actualizar archivo OSM con un archivo OSC

Para actualizar la información con calles/nodos/parques nuevos en un arhivo de formato OSM, es necesario generar un archivo OSC. Para combinarlos hay que usar el comando

osmchange -i=old.osm changefile.osc >new.osm

Link de interes

http://wiki.openstreetmap.org/wiki/Osmchange_(program) http://wiki.openstreetmap.org/wiki/Osmchange

Instalación Nominatim 3.0

Nominatim 3.0 fue instalado en la VM 18:22081. Para la instalación se siguieron los pasos a continuación.

La VM 18:22 se encontraba con Ubuntu 14.04 LTS, lo primero que se hizo fue actualizar a Ubuntu 16 para utilizar las últimas dependencias, para eso ejecutamos:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo do-release-upgrade

Posterior a esto solo hay que seguir las indicaciones en pantalla.

Luego, comienza la instalación de Nominatim, se siguieron las instrucciones de Github Nominatim, lo primero es instalar las dependencias

sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
                        libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
                        libbz2-dev libpq-dev libgeos-dev libgeos++-dev libproj-dev \
                        postgresql-server-dev-9.5 postgresql-9.5-postgis-2.2 postgresql-contrib-9.5 \
                        apache2 php php-pgsql libapache2-mod-php php-pear php-db \
                        php-intl git

Se crea el usuario 'nominatim'.

sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim

Para hacer las cosas más comodas ejecutamos estos export para ahorrarnos text más adelante

export USERNAME=nominatim
export USERHOME=/srv/nominatim

Permitimos que la carpeta de nominatim sea leida por el server

chmod a+x $USERHOME

Ahora, debemos crear la base de datos en postgres, el usuario que manejará la base de datos será nominatim, por lo que ejecutamos

sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser www-data
sudo systemctl restart postgresql

buscamos y editamos el archivo fe configuración de postgres llamado postgresql.conf y editamos los valores

shared_buffers (2GB)
maintenance_work_mem (10GB)
work_mem (50MB)
effective_cache_size (24GB)
synchronous_commit = off
checkpoint_segments = 100 # only for postgresql <= 9.4
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9

Creamos el archivo de configuración para apache en un archivo aparte en conf-available ejecutando el siguiente comando

sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
<Directory "$USERHOME/Nominatim/build/website">
  Options FollowSymLinks MultiViews
  AddType text/html   .php
  DirectoryIndex search.php
  Require all granted
</Directory>
 
Alias /nominatim $USERHOME/Nominatim/build/website
EOFAPACHECONF
sudo a2enconf nominatim
sudo systemctl restart apache2

Recién ahora pasamos a la instalación de Nominatim, nos vamos al home de nominatim, copiamos el repositorio y ejecutamos los siguientes comandos

cd $USERHOME
git clone --recursive git://github.com/openstreetmap/Nominatim.git
cd Nominatim
mkdir build
cd build
cmake $USERHOME/Nominatim
make
tee settings/local.php << EOF
<?php
 @define('CONST_Website_BaseURL', '/nominatim/');
EOF

Ahora, debemos importar la información de OSM, para ello descargamos el archivo .osm correspondiente, OJO, el archivo debe estar en formato .osm.

wget http://download.geofabrik.de/south-america/chile-latest.osm.bz2
bzip2 -d chile-latest.osm.bz2
./utils/setup.php --osm-file chile.latest.osm --all 2>&1 | tee setup.log

Con esto tenemos Nominatim corriendo con la data de Chile. Para agregar más información (como la data de OSM de Canadá) es necesario limpiar la base de datos de postgres, unir todos los archivos .osm en uno solo y ejecutar el último comando señalada en esta documentación con el nuevo nombre del archivo .osm.

Mapas de OSM en Geonode

Es posible publicar mapas actualizados en geonode desde la data obtenida directamente de los servidores de OSM, se utilizó esta guía para poder realizar la actualización. Se debieron utilizar 2 VMs para este trabajo debido a que geonode está instalado en Ubuntu 12.04 y tiene conflictos con los paquetes de postgres el cual, al tratar de instalar una nueva versión de éste, solicita eliminar geonode (lo cual obviamente no queremos) por lo que el trabajo de osmosis y transformación de los datos a sql se realiza en la VM 18:22 (Gatherer). Se construyeron dos script, uno para la VM 18:22 y otro para la 19:13 (Geonode), Se explicarán los script en el orden en que se ejecutan.

Script de 18:22

Este script cumple con tres funciones principales, descargar la información de las calles de los servidores de OSM para Chile, extraer la información necesaria (tales como estaciones de policía, calles principales, hospitales, etc.) y posteriormente esta información es transformada a un archivo sql para ser insertada en una base de datos. El script construido es el siguiente:

DB=/home/csfuente/hibridinterfaz/media/sql_osm
SETNAME=/home/csfuente/hibridinterfaz/media/sql
 
# Creacion del directorio
 
mkdir -p /home/csfuente/hibridinterfaz/media/sql
 
# Descarga de archivo latest.pbf
 
curl -g -o /home/csfuente/hibridinterfaz/media/sql/latest.pbf http://download.geofabrik.de/south-america/chile-latest.osm.pbf
 
# Construccion de archivos pbf
 
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="aeroway.aerodrome" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="aeroway.aerodrome" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/aerodromes_polygon.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="place.city,place.borough,place.suburb,place.quarter,place.neighbourhood,place.city_block,place.plot,place.town,place.village,place.hamlet,place.isolated_dwelling,place.farm,place.allotments" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "highway=*" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes amenity=bank,atm,bureau_de_change --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/banks.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "building=*"  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/buildings.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways landuse=residential,allotments,cemetery,construction,depot,garages,brownfield,commercial,industrial,retail --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/built_up_areas.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=city" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/cities.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.farm,landuse.farmland,landuse.farmyard,landuse.livestock" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/farms.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.forest,natural.wood" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/forest.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="landuse.grass,landuse.meadow,landuse.scrub,landuse.village_green,natural.scrub,natural.heath,natural.grassland" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/grassland.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes aeroway=helipad,heliport --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/helipads.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="tourism.hotel,tourism.hostel,tourism.motel,tourism.guest_house" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/hotels.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf reject-relations --tf accept-ways waterway=* --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/inland_water_line.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways natural=water,wetland,bay landuse=reservoir,basin,salt_pond waterway=river,riverbank --tf accept-relations natural=water,wetland,bay landuse=reservoir,basin,salt_pond waterway=river,riverbank --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf" --wkv keyValueList="highway.motorway,highway.trunk,highway.primary" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/main_roads.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.baby_hatch,amenity.clinic,amenity.dentist,amenity.doctors,amenity.hospital,amenity.nursing_home,amenity.pharmacy,amenity.social_facility,amenity.veterinary,amenity.blood_donation" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/medical_point.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/buildings.pbf" --wkv keyValueList="amenity.baby_hatch,amenity.clinic,amenity.dentist,amenity.doctors,amenity.hospital,amenity.nursing_home,amenity.pharmacy,amenity.social_facility,amenity.veterinary,amenity.blood_donation" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/medical_polygon.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf" --wkv keyValueList="highway.footway,highway.bridleway,highway.steps,highway.path" --used-node  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/paths.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.police" --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/police_stations.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-ways "railway=*" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/railways.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --nkv keyValueList="amenity.school,amenity.university,amenity.college,amenity.kindergarten,amenity.library,amenity.public_bookcase,amenity.music_school,amenity.driving_school,amenity.language_school" --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/school_point.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --wkv keyValueList="amenity.school,amenity.university,amenity.college,amenity.kindergarten,amenity.library,amenity.public_bookcase,amenity.music_school,amenity.driving_school,amenity.language_school" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/schools_polygon.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=town" --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/towns.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_roads.pbf"  --wkv keyValueList="highway.track" --used-node --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/tracks.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf accept-nodes amenity=bicycle_parking,bicycle_repair_station,bicycle_rental,boat_sharing,bus_station,car_rental,car_sharing,car_wash,charging_station,ferry_terminal,fuel,grit_brin,motorcycle_parking,parking,parking_entrance,parking_space,taxi public_transport=* railway=halt,station,subway_entrance,tram_stop waterway=dock,boatyard --tf reject-ways --tf reject-relations  --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/transport_point.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/latest.pbf" --tf reject-ways --tf reject-relations --tf accept-nodes amenity=shower,toilets,water_point,drinking_water,water_in_place --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/utilities.pbf"
/home/csfuente/osmosis/bin/osmosis --read-pbf-fast file="/home/csfuente/hibridinterfaz/media/sql/all_places.pbf"  --tf accept-nodes "place=village" --tf reject-ways --tf reject-relations --write-pbf file="/home/csfuente/hibridinterfaz/media/sql/villages.pbf"
 
# Construccion de archivos sql
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/aerodromes_point.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/aerodromes_polygon.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/aerodromes_polygon.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/all_places.sql /home/csfuente/hibridinterfaz/media/sql/aerodromes_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/all_places.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/all_roads.sql /home/csfuente/hibridinterfaz/media/sql/all_roads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/all_roads.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/banks.sql /home/csfuente/hibridinterfaz/media/sql/banks.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/banks.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/buildings.sql /home/csfuente/hibridinterfaz/media/sql/buildings.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/buildings.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/built_up_areas.sql /home/csfuente/hibridinterfaz/media/sql/built_up_areas.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/built_up_areas.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/cities.sql /home/csfuente/hibridinterfaz/media/sql/cities.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/cities.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/farms.sql /home/csfuente/hibridinterfaz/media/sql/farms.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/farms.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/forest.sql /home/csfuente/hibridinterfaz/media/sql/forest.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/forest.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/grassland.sql /home/csfuente/hibridinterfaz/media/sql/grassland.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/grassland.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/helipads.sql /home/csfuente/hibridinterfaz/media/sql/helipads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/helipads.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/hotels.sql /home/csfuente/hibridinterfaz/media/sql/hotels.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/hotels.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/inland_water_line.sql /home/csfuente/hibridinterfaz/media/sql/inland_water_line.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/inland_water_line.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.sql /home/csfuente/hibridinterfaz/media/sql/inland_water_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/inland_water_polygon.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/main_roads.sql /home/csfuente/hibridinterfaz/media/sql/main_roads.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/main_roads.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/medical_point.sql /home/csfuente/hibridinterfaz/media/sql/medical_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/medical_point.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/medical_polygon.sql /home/csfuente/hibridinterfaz/media/sql/medical_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/medical_polygon.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/paths.sql /home/csfuente/hibridinterfaz/media/sql/paths.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/paths.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/police_stations.sql /home/csfuente/hibridinterfaz/media/sql/police_stations.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/police_stations.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/railways.sql /home/csfuente/hibridinterfaz/media/sql/railways.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/railways.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/schools_point.sql /home/csfuente/hibridinterfaz/media/sql/school_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/schools_point.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/schools_polygon.sql /home/csfuente/hibridinterfaz/media/sql/schools_polygon.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/schools_polygon.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/towns.sql /home/csfuente/hibridinterfaz/media/sql/towns.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/towns.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/tracks.sql /home/csfuente/hibridinterfaz/media/sql/tracks.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/tracks.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/transport_point.sql /home/csfuente/hibridinterfaz/media/sql/transport_point.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/transport_point.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/utilities.sql /home/csfuente/hibridinterfaz/media/sql/utilities.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/utilities.ini
ogr2ogr -f PGDump /home/csfuente/hibridinterfaz/media/sql/villages.sql /home/csfuente/hibridinterfaz/media/sql/villages.pbf -lco COLUMN_TYPES=other_tags=hstore --config OSM_CONFIG_FILE conf/villages.ini

Script de 19:13

Antes de explicar el script, es necesario crear la base de datos en donde se trabajará, para ello se creó la base de datos 'Chile_osm' en postgres

createdb Chile_osm \
psql -d Chile_osm -c 'create extension postgis;'; \
psql -d Chile_osm -c 'create extension hstore;';

Esta base de datos la leemos en geoserver, para ello creamos un nuevo Store y un nuevo Workspace especial para esta data. Acá la llamé osm.

Con ésto, el script generado para esta VM funciona de forma recursiva. Recupera el archivo sql generado en la otra VM, lo codifica para que no existan problemas con los textos, traspasa la data a la base de datos, las ordena y las dispone para que sean leidas. Hace esto para cada uno de los archivos sql generados anteriormente. Por lo que el script queda como

curl -g  -o /home/csfuente/osmex/Chile/aerodromes_point.sql1 http://146.155.17.18:22080/media/sql/aerodromes_point.sql
iconv -f latin1 -t utf-8 /home/csfuente/osmex/Chile/aerodromes_point.sql1 > /home/csfuente/osmex/Chile/aerodromes_point.sql
psql -f /home/csfuente/osmex/Chile/aerodromes_point.sql Chile_osm
psql -f /home/csfuente/osmex/conf/aerodromes_point_alter.sql Chile_osm
psql -f /home/csfuente/osmex/conf/clean.sql Chile_osm
 
.
.
.

Finalmente debemos actualizar las capas en geonode para que sean reconocidas por éste, por lo que al final del script se ejecuta el comando

geonode updatelayers --ignore-errors -w osm

El que nos permite solicitar la actualización de todas las capas del Workspace osm.

Horas en las cuales se ejecutan los script

Ambos script se ejecutan de forma de cron, éstos funcionan todos los lunes a las 4:00 AM y 5:00 AM respectivamente.