Serveur/OpenStreetMap sous Ubuntu 14.04

Pour certains besoins, il est parfois nécessaire de mettre en place son propre serveur OpenStreetMap, comme par exemple pour des applications métiers, afin d’avoir le serveur en local, ne pas surcharger les serveurs OSM publiques, réduire le temps de latence, travailler sur des emprises définies (continent, pays, région, et même zone personnalisée).
Mon serveur étant sous ubuntu server, je ne m’intéresserai ici qu’à ce cas de figure, mais il y a fort à parier que les paquets soient accessibles sous d’autres distributions.

Présentation

Le but est de mettre en place un architecture permettant d’intégrer les exports d’OSM (dumps & diffs), afin de fournir un service de cartographie.
Le service devra mettre à disposition de leaflet des tuiles cartographiques.

Voici le schéma complet de l’infrastructure d’OpenStreetMap :

Schéma Infrastructure OSM
Les principaux services nécessaires sont les suivants :
Osmosis permet la gestion des données, import/export/comparaison des dumps et diffs des données OSM.
Osm2pgsql permet la conversion des données OSM afin de les importer dans la base PostgreSQL.
Mapnik permet de faire le rendu des tuiles en utilisant des styles personnalisables.
Mod_tile effectue la gestion des tuiles et du cache. Si elle existe et est à jour, il la sert au serveur web, si elle est obsolète ou n’existe pas, il va la demander à Mapnik.
Renderd gère la priorisation des demandes de tuiles de Mod_tile à Mapnik en prenant en compte la charge serveur.

OSM Bright permet de gérer les styles des cartes.

Recommandations matérielles

Pour un rendu important, comme au niveau planète, il faut prévoir une infrastructure matérielle conséquente :

  • au moins 24 GB de RAM,
  • avoir la DB sur des disques SSD,
  • 512 GB d’espace disque si les données OSM sont mises à jour,
  • 256 GB d’espace disque si les données OSM ne sont pas mises à jour, mais réimportées via l’option -drop,
  • Concernant le processeur, je n’ai pas trouvé d’info.

Ceci sans faire allusion au RAID et besoins de sauvegardes.

Installations

Les commandes sont données pour un système avec ubuntu server 14.04

Installation des dépendances

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 node-carto

 

Installation de PostgreSQL & PostGIS

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

 

Installation d’osm2pgsql

mkdir ~/src
cd ~/src
git clone git://github.com/openstreetmap/osm2pgsql.git
cd osm2pgsql
./autogen.sh
./configure
make
sudo make install

 

Installation de 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

 

Installation de mod_tile & renderd

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

 

Notes

Si les mises à jour de la base de données ne sont pas très fréquentes (<2/mois), il semble préférable d’utiliser le dump complet plutôt que les diffs.

Téléchargements:
Planet OSM – Pour télécharger les données au niveau global
Geofabrik – Pour télécharger les données au niveau désiré (Continent, Pays, Région)
Dernier fichier OSM – France (3 GB)
 
Sources :
Switch2OSM.org
Pages persos d’Adrien/Créer son propre miroir des données OpenStreetMap et un serveur de rendu des tuiles, avec Debian Wheezy
Makina Corpus/Un serveur OpenStreetMap pour votre ville
Wiki OSM/Automatiser la mise à jour quotidienne

GLFO > Gestion de Liaisons Fibres Optiques

GLFO, en cours de développement…

GLFO est une solution de gestion de liaisons Fibres Optiques et donc de réseau FO.

Elle a été développée dans un premier temps dans un soucie de simplicité, tout en permettant une gestion complète d’un point de vue réseau.
Cette première version ne permet pas encore la gestion des équipements actifs et du jarretièrage.

L’édition de routes optiques est par contre possible, afin de permettre l’édition papier pour les équipes de raccordeurs Fibres Optiques.

PhpMyAdmin > Clé étrangère

Comme une grande partie des utilisateurs de bases de données, j’utilise mysql implémenté de phpmyadmin.

Lors de la création de tables, il est important de bien définir la structure et les clés primaire et étrangères de chaque table.

Tout d’abord, il est important d’avoir les tables de type InnoDB, pour pouvoir créer les FOREIGN KEY.

Un exemple de table avec un id, trois colonnes et une quatrième colonne qui est contrainte par une clé étrangère :

Si on décompose, on obtient, la création de la table :

CREATE TABLE IF NOT EXISTS `tableA` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`colonne1` int(2) NOT NULL,
`colonne2` int(2) NOT NULL,
`colonne3` varchar(4) NOT NULL,
`id_tableB` int(25) DEFAULT NULL,

La clé primaire :
PRIMARY KEY (`id`),

La création de la clé étrangère :
FOREIGN KEY ( `id_tableB` ) REFERENCES `tableB` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

La syntaxe est simple :

FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]
[ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}]

Enfin, on termine par le moteur de stockage, le type et l’auto incrémente si besoin est.

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Manuel mysql

Système Informatique de Gestion de Réseaux Fibres Optiques

La gestion d’un réseau Fibres Optiques d’un opérateur est une tâche primordiale, car il s’agit là du cœur du réseau. Si l’on ne veut pas sombrer rapidement dans un incommensurable fouillis, il faut utiliser un outil spécialement conçu, les tableurs atteignent très vite leur limite.

C’est pour cette raison, que je me suis lancé le défi de développer un SI de Gestion de Liaisons Fibres Optiques.

Une multiplicité de paramètres sont à intégrer, tels que câbles, tronçons, fibres, boites, tiroirs, …

C’est un système assez complexe à concevoir qui, permet une gestion aisé du réseau, évitant ainsi tout problème de mise à jour de fichiers et de mise à jour mutuelle des fichiers.

Générer un fichier csv via php

Voici un script qui permet de récupérer des données d’une base de données et de générer un fichier .csv, pour les utiliser dans un tableur. Une façon simple d’exporter des informations pour les communiquer à des personnes n’ayant pas accès à votre base de données et/ou n’ayant pas besoin d’apporter de modification.

Pour chaque exécution, un fichier va être créé sur le serveur pour être ensuite téléchargé, mais ne sera jamais supprimé automatiquement.

Télécharger le fichier

Sauvegarde d’une base de données en ligne

Depuis la généralisation des sites Internet en php, les bases de données Oracle, mysql et autres sont devenues incontournables. Elles constituent le cœur du site.

Pour cette raison, il est essentiel de sauvegarder régulièrement l’intégralité de la base.

L’hébergeur Online (Iliad) facture cette opération 10 €.

Il suffit pourtant de quelques lignes pour faire la sauvegarde complète.

J’ai mis cette solution en place sur mon serveur et ça marche très bien.

Il suffit de créer une tâche planifiée sur le serveur, ou manuellement : un simple lien, ou une tâche planifiée sur Windows par exemple s’il s’agit d’un serveur dédié.

Télécharger le fichier