Skip to Content

Configurer une machine virtuelle capable de faire du SIG [2]

Niveau Débutant
Logiciels utilisés Postgresql-9.3
PgAdmin3
Plateforme Windows | Linux

Dans la première partie de ce tutoriel, nous avons vu comment installer et configurer Ubuntu 12.04 sur une machine virtuelle tournant sous VirtualBox. Maintenant, nous allons aborder la phase d'installation et de configuration du Système de Gestion et de Base de Données (SGBD) PostgreSQL.

Installation de PostgreSQL

1) Préambule

Afin de pouvoir installer les applications dont nous aurons besoin par la suite, il est conseillé d’installer dès le départ les dépôts qui ne seraient pas présents nativement dans la version 12.04 d’Ubuntu, autrement dit, le dépôt UbuntuGis, qui comme son nom l’indique permet d’installer des librairies et des logiciels permettant de faire du SIG sur Ubuntu ; le dépôt postgresql qui contient la dernière version (9.3) du SGBD et le dépôt QGIS qui lui aussi contient la dernière version en date du logiciel éponyme (2.2-Valmiera).

a) Dépôt UbuntuGIS

Pour installer le dépôt UbuntuGIS, il faut avant tout ouvrir la logithèque Ubuntu représentée dans la barre des tâches par l’icône ci-après :

 
 
 

Quand la logithèque est ouverte, diriger le curseur vers le coin gauche de l’écran pour faire apparaître la barre des menus. Choisir le menu Edition, puis tout en bas de celui-ci, cliquer sur Source de logiciel. 

La fenêtre suivante s’ouvre : 

Cliquer sur Autres logiciels pour vous retrouver sur l’interface suivante : 

 

En théorie, par défaut, la dernière ligne de source de logiciel disponible à cet endroit est celle encadrée en rouge sur l’image, mais comme ce tutoriel a été rédigé après installation des paquets mentionnés plus hauts, ils y figurent déjà. Nous allons donc faire comme s’ils n’étaient pas là.

Pour ajouter le dépôt UbuntuGIS, il suffit de cliquer sur ajouter et de remplir le formulaire qui s’ouvre dans la fenêtre suivante comme ceci : 

 

Cliquer ensuite sur ajouter une source de mise à jour pour constater que le dépôt ubuntugis a bien été ajouté aux sources de logiciels. 

b) Dépôt Postgresql

Le principe est exactement le même pour Postgresql sauf qu’il faut remplacer ppa:ubuntugis/ppa par deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main dans la fenêtre ci-dessus.

c) Dépôt QGIS

Le procédé est identique pour qgis sauf qu’il faut ici remplacer ppa:ubuntugis/ppa par deb http://qgis.org/debian precise main

Une fois que les trois dépôts ont été installés dans les sources de logiciel de la logithèque, ouvrir un terminal et taper la ligne de commande suivante en prenant bien soin de taper correctement le mot de passe ensuite: 

sudo apt-get update

Dès lors que cette ligne de commande a été rentrée dans le terminal, les paquets d’Ubuntu sont mis à jour et nous pourrons donc utiliser la commande suivante pour mettre à jour les applications déjà présentes sur la machine :

sudo apt-get upgrade

Le processus mettra plus ou moins de temps car il dépend de la vitesse de votre connexion internet, de la quantité de paquets et d’applications à mettre à jour, ainsi que de la rapidité de traitement de votre machine virtuelle pour tout installer. Une fois ceci effectué, nous pouvons passer à l’installation des applications qui vont nous servir à faire du SIG sur Ubuntu.

2) Postgresql 9.3

a) Installation de Postgresql

Pour installer Postgresql deux options s'offrent à nous : 

La première est d’installer cette application directement depuis la logithèque Ubuntu en rentrant « postgresql » dans la barre de recherche comme indiqué ci-dessous :  

 

La seconde possibilité qui est conseillée car plus rapide est de rentrer la ligne de commande suivante dans un terminal : 

sudo apt-get install postgresql-9.3

Il nous est demandé au cours de cette installation de bien vouloir confirmer que nous souhaitons installer PostgreSQL.  Il faudra donc appuyer sur la touche « o » quand cela sera nécessaire.

Il est à noter que cette commande va installer différents paquets permettant de bien faire fonctionner le SGBD dans sa dernière version en date, PostgreSQL-9.3.

Dès lors que PostgreSQL est correctement installé, nous allons pouvoir passer à la phase de configuration.

b) Installation de Postgresql

Par défaut, l’installation de PostgreSQL entraîne la création de l’utilisateur «postgres», super-administrateur de PostgreSQL. Pour l’instant, seul cet utilisateur a la possibilité de créer une base de données PostgreSQL, créer des rôles de connexion, etc. Nous allons donc nous connecter à cet utilisateur pour créer un nouveau rôle de connexion super-administrateur autre que «postgres», par exemple «admin». Rentrer la ligne de commande suivante pour vous connecter à l’utilisateur «postgres» :

 sudo -i -u postgres

Pour information, le –i permet d’ouvrir une session du terminal en mode root et le –u permet de se connecter à un utilisateur, en l’occurrence, l’utilisateur «postgres». La combinaison des deux permet donc d’ouvrir une session en mode root avec l’utilisateur «postgres» En début de ligne devrait apparaître la chose suivante :

postgres@nom_ordinateur/serveur:~$

Cela veut dire que la connexion à l’utilisateur « postgres » s’est bien effectuée. Nous pouvons donc maintenant créer un autre super-utilisateur à qui nous assignerons un mot de passe pour qu’il puisse se connecter à une base PostgreSQL et y effectuer toutes les opérations d’administration et de maintenance de la base. Pour l’exemple, il s’appellera «admin» et son mot de passe sera «admin». Il va de soi qu’en théorie pour une installation sécurisée, il faudrait choisir un mot de passe différent du nom d’utilisateur et dans l’idéal, un qui soit généré de manière aléatoire.

Pour créer ce super-utilisateur, rentrer la ligne de commande suivante dans le terminal : 

createuser -P -s admin

Pour information, le –P nous permet de signifier à PostgreSQL que nous voulons assigner un mot de passe à l’utilisateur. Le -s nous permet d’indiquer que nous voulons que cet utilisateur que l’on va crée et qui s’appelle admin soit un super-administrateur de PostgreSQL.

Une fois que nous avons validé la commande précédente, il nous est demandé par deux fois de renseigner le mot de passe que nous souhaitons assigner à l’utilisateur admin. Ici il faudra donc rentrer deux fois admin et à chaque fois appuyer sur entrée pour valider.

Cette opération effectuée, nous pouvons nous déconnecter de l’utilisateur postgres en rentrant tout simplement la commande suivante dans le terminal : 

exit

Il faut maintenant redémarrer PostgreSQL pour prendre en compte les modifications que nous venons de lui apporter. Pour cela, même principe que pour Tomcat 7 auparavant, deux solutions sont envisageables : 

sudo /etc/init.d/postgresql restart

sudo service postgresql restart

Afin de sécuriser au maximum les connexions à la base données, il est conseillé de modifier le fichier de configuration intitulé pg_hba.conf et situé par défaut dans /etc/postgresql/9.3/main/ et qui permet de gérer les méthodes d’authentification des différents hôtes.
 
Pour l’éditer, le principe est le même que pour éditer le fichier des utilisateurs de Tomcat, à savoir, rentrer la ligne de commande suivante dans un terminal :

sudo gedit /etc/postgresql/9.3/main/pg_hba.conf

Aller ensuite à la fin du document pour trouver les lignes suivantes :

# "local" is for Unix domain socket connections only

local              all               all                                 peer

Quelque soit le projet, il vaut mieux, en règle générale, utiliser une connexion par mot de passe encrypté de type md5, plutôt que peer ou trust par exemple qui autorise la connexion à la base de données sans demander de mot de passe.

Après modifications, les lignes précédentes doivent donc désormais ressembler à ceci :

# "local" is for Unix domain socket connections only

local            all             all                                     md5

Une fois cette modification effectuée, enregistrer le fichier et fermer l’éditeur de texte. Dans le terminal, redémarrer à nouveau PostgreSQL avec une des deux méthodes précédemment citées.

C’est là que l’étape de création d’un mot de passe au moment de la création de l’utilisateur «admin» prend tout son sens car il n’aurait pas pu, avec cette méthode d’identification, effectuer la moindre opération sur la base de données si nous ne lui avions pas attribué un mot de passe.

c) Test

Le plus simple pour voir l’intérêt de l’étape de configuration est de télécharger une interface graphique d’administration de PostgreSQL. Il en existe 2. PgAdmin3 qui s’utilise en local, et PhpPgAdmin qui s’utilise à distance via le répertoire de publication web d’Apache. Nous testerons ici la configuration des rôles de connexions dans PostgreSQL avec l’interface la plus rapide à installer : PgAdmin3.

Comme pour Apache, nous utilisons la commande apt-get pour installer PgAdmin3 :

sudo apt-gtet install pgadmin3

Taper « o » si besoin pour confirmer le téléchargement et l’installation du paquet. L’icône de PgAdmin3 devrait alors apparaître dans la barre de raccourci. Si ce n’est pas le cas, et plutôt que de rechercher dans les différents programmes où l’application peut bien être, le plus simple est encore de taper la ligne suivante dans un terminal pour le lancer :

pgadmin3

La fenêtre suivante s’ouvre alors :

 

Nous allons donc tenter de nous connecter à un serveur local de base de données. Pour cela, cliquer sur l’icône en forme de prise de courant, la plus à gauche de la barre d’outils. Le formulaire suivant s’ouvre alors : 

 

Nous laissons volontairement le champ mot de passe vide pour observer les conséquences des modifications du fichier pg_hba.conf faîtes précédemment.

En appuyant sur valider, le message d’erreur suivant apparaît :

 

De cette façon, nous vérifions bien que tout utilisateur désirant accéder à la base de données doit renseigner un mot de passe pour y accéder.

Pour nous connecter donc, nous devons, après avoir fermé cette fenêtre, réitérer l’opération de connexion au serveur de base de données en renseignant cette fois-ci le mot de passe, ici « admin » dans le formulaire comme ci-dessous : 

 

En cliquant sur valider, la connexion réussira et vous verrez alors apparaître dans la partie gauche, en dessous de Groupe de Serveurs une ligne mentionnant que PgAdmin est un bien connecté à un serveur.

Volontairement ici, nous ne cochons pas la case « enregistrer le mot de passe » pour forcer l’utilisateur « admin » à le rentrer à chaque fois qu’il souhaitera se connecter à ce serveur de base de données.

Evidemment, il est possible à tous moments de cliquer sur enregistrer le mot de passe afin de le garder en mémoire. Cela étant, comme le précise justement PgAdmin, stocker le mot de passe dans la mémoire de l’ordinateur peut entraîner une faille de sécurité dans le système.

Aussi il est fortement déconseillé d’enregistrer le mot de passe dans la mémoire de l’ordinateur.

Pour plus de précisions, voici le message que PgAdminIII affiche quand un utilisateur choisit d’enregistrer son mot de passe :

 

Si cette fenêtre s’ouvre, c’est que la case « enregistrer le mot de passe » a été cochée. Dans cas, il faut cliquer sur annuler et la décocher dans le formulaire.

Si les informations ont été correctement rentrées dans le formulaire, la connexion au serveur de base de données s’établit. On peut donc voir juste en dessous de Groupe de serveurs, la ligne Serveurs (1) qui confirme que la connexion a bien fonctionné. On trouve bien le serveur Test avec pour hôte localhost et comme port 5432.

En développant au maximum l’arborescence du serveur, on obtient le résultat suivant : 

Ceci prouve que la connexion par mot de passe avec l’utilisateur « admin » s’est bien déroulée. Pour information, la base déjà présente est la base de maintenance de PostgreSQL. Elle ne doit en aucun cas être supprimée pour que les futures bases de données fonctionnent.

Nous sommes parvenus à la fin de la deuxième partie de ce tutoriel. Dans la prochaine partie, nous verrons comment installer PostGIS, la cartouche spatiale de PostgreSQL, ainsi que ses dépendances. 

Site officiel : Postgresql
Site officiel : PgAdmin

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.