Openldap tutorial – Installation et configuration de base

« OpenLDAP tutorial », basée sur la pratique. La démarche de l’exposé se fait pas à pas en montrant tous les détails nécessaires au bon fonctionnement final. L’installation exposée comprend une configuration minimale pour un fonctionnement correcte. D’autres articles suivront pour améliorer l’installation sur différents aspects. Il est conseillé de suivre cette serie d’articles dans l’ordre.

  1. Cet article: Installation et configuration de base
  2. Modifier les paramètres par défaut
  3. Activer le Log OpenLDAP
  4. Accès à la configuration dynamique par l’administrateur
  5. Organisation et types de données
  6. Ajouter des données à l’annuaire
  7. Utilisation pour protéger l’accès à un site web
  8. OpenLDAP password policy – gérer les comptes des utilisateurs
Pré-requis: Aucun à propos du serveur OpenLDAP. There is an english version of this series of articles.

Openldap tutorial, étape 1: Configurer correctement l’hôte Debian / Ubuntu.

La procédure d’installation du serveur met en place systématiquement une base de données. Le DIT (équivalent de l’instance pour les bases de données relationnelles) est sélectionné en fonction du nom de domaine de la machine hôte.
hostname -f
Cette commande retourne le nom complet (full) de la machine. Exemple: desktop.meddeb.net. Dans ce cas la base de données aura pour DIT: dc=meddeb,dc=net (la partie droite du nom à partir du 1er point rencontré). Si la configuration ne vous convient pas, il faudrait la modifier (fichier /etc/hostname et /etc/hosts)

Openldap tutorial, étape 2: installer le serveur Openldap sur Debian / Ubuntu.

sudo apt-get purge slapd
sudo apt-get install slapd
La procédure d’installation se lance et demande le mot de passe de l’administrateur du serveur. openldap tutorial, openldap ubuntu, openldap debianEn plus des fichiers binaires exécutables, il est installé dans les dossiers:
  • /usr/lib/ldap/ : librairies des modules (overlay), fichiers binaires natifs
  • /etc/ldap/schema/ : Schémas disponibles par défaut, fichiers texte.
  • /etc/ldap/slap.d/ : Configuration dynamique, fichiers texte.
  • /var/lib/ldap/ : Données, fichiers de la base de données installée.
  • /var/run/slapd/ : Paramètres d’exécution, fichiers texte.

Openldap tutorial, étape 3: installer les utilitaires client de Openldap.

sudo apt-get install ldap-utils
Ceci installe les utilitaires clients Openldap, notamment l’utilitaire d’interrogation ldapsearch. Le fichier de configuration de ces utilitaires /etc/ldap/ldap.conf peut être très utile dans le mesure où il permet de fixer des paramètres par défaut. Cela simplifie l’interaction avec le serveur. Un contenu typique de ce fichier est:
BASE   dc=meddeb,dc=net
URI    ldap://localhost
SIZELIMIT      12
TIMELIMIT      15
DEREF          never
# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Openldap tutorial, étape 4: Vérifier l’installation.

slapd -V ↵

@(#) $OpenLDAP: slapd  (Ubuntu) (May 11 2016 16:12:05) $
        buildd@lgw01-10:/build/openldap-mF7Kfq/openldap-2.4.42+dfsg/debian/build/servers/slap
La version du serveur installée est 2.4.42
ldapsearch -Y external  -H ldapi:/// -b cn=config "(objectClass=olcGlobal)" -LLL ↵
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcLogLevel: none
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
Ceci donne la partie globale de la configuration mise en place par défaut. On retrouve l’indication des deux fichiers des paramètres d’exécution dans le dossier /var/run/slapd/. On remarquera le paramètre olcLogLevel à none, à modifier impérativement.
sudo ldapsearch -Y external  -H ldapi:/// -b dc=meddeb,dc=net -LLL ↵

ASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: dc=meddeb,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: meddeb.net
dc: meddeb

dn: cn=admin,dc=meddeb,dc=net
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
Ceci donne les deux seules entrées créées dans l’annuaire par défaut:
  • dc=meddeb,dc=net, qui représente le DIT de l’annuaire.
  • cn=admin,dc=meddeb,dc=net, qui est l’administrateur de l’annuaire dont le mot de passe a été saisie au cours de l’installation.
]]>

Tutoriel Maven – Tests unitaires Java

Objectif: Ce tutoriel Maven concerne la mise en place de test unitaire java avec cet outil. Par défaut, à la génération d’un nouveau projet, Maven met en place tout ce qu’il faut pour intégrer un test unitaire java. Il s’agit de la branche test de l’arborescence créée, cf. l’article Tutoriel Maven 3 – partie 2. Dans ce tutoriel Maven on verra comment mettre en place ce test unitaire java, comment le contourner en cas de besoin et l’intérêt de cette fonctionnalité dans le processus de développement de logiciels. Pré-requis: le JDK est installé, cf. l’article: Installer Java sur Ubuntu ou compatible et Maven 3 est installé cf. l’artice: Tutoriel Maven 3 – partie 1

1. Maven test unitaire Java est mis en place par défaut à la génération du projet

mvn archetype:generate -DgroupId=com.example.calculateur \
    -DartifactId=calculteur -Dversion=1.0 -Dpackage=com.example.calculateur \
    -DinteractiveMode=false
ls calculateur/src/test/java/com/exemple/calculateur/
AppTest.java
La classe AppTest.java a été générée pour contenir le code des tests. La dépendance au framework JUnit a été rajoutée dans le fichier pom.xml
.....
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>
.....

2. Simuler une erreur de test unitaire Java

Dans le code de la classe AppTest.java, repérer:
public void testApp()
{
   assertTrue( true );
}
Et modifier en:
public void testApp()
{
   assertTrue( false );
}
Après cela si on lance la reconstruction de l’application, l’opération échoue à cause de test non concluant.
mvn clean package
..
..
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.exemple.calculateur.AppTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.46 sec <<< FAILURE!

Results :

Failed tests:   testApp(com.exemple.calculateur.AppTest)

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

3. Ajouter les fonctions de calcul à l’application

Ajouter une classe qui se charge des calculs: Calc.java et activer l’appel au calcul dans App.java
package com.exemple.calculateur;
public class Calc
{
  private int getInt(String s) {
    int resultat = -1;
    try {
      resultat = Integer.parseInt(s);
    }
    catch (NumberFormatException e) {
      resultat = -1;
    }
    finally {
      return resultat;
    }
  }
  public int somme(String s1, String s2)
  {
    int i1 = getInt(s1);
    int i2 = getInt(s2);
    int resultat = i1 + i2;
    return resultat;
  }
  public int multiplication(String m1, String m2)
  {
    int i1 = getInt(m1);
    int i2 = getInt(m2);
    int resultat = i1 * i2;
    return resultat;
  }
}
// Dans App.java
public static void main( String[] args )
{
  if (args.length != 3) {
    System.out.println("Opération non supportée.");
    System.exit(1);
  }
  String operation = args[1];
  Calc calc = new Calc();
  int resultat = -1;
  if (operation.equalsIgnoreCase("+")) {
    resultat = calc.somme(args[0], args[2]);
  } else if (operation.equalsIgnoreCase("x")) {
    resultat = calc.multiplication(args[0], args[2]);
  }
  if (resulat >= 0) {
    System.out.println("Résultat: " + resultat);
  } else System.out.println("Opération non supportée");
}
Ce code a été écrit pour répondre au cahier des charges suivant:
  1. Le calculateur peut effectuer les opérations d’addition et de multiplication.
  2. Les opérations ne portent que sur des nombres entiers positifs ou nul.
  3. On passe trois arguments au calculateur, dans l’ordre: 1er opérande, opération, 2eme opérande.
  4. En cas d’erreur d’utilisation le calculateur répond par le message “Opération non supportée”.

4. Ajouter le test unitaire Java en conformité avec le cahier des charges

Ce test doit contrôler le fonctionnement des méthodes de la classe Calc qui effectue le calcul et constitue le cœur de cette application. Commençons par la méthode Calc.somme(String s1, String s2). Dans AppTest.java on va modifier le code, cette fois pour inclure les tests.
public void testApp()
{
  Calc calc = new Calc();
  assertEquals(calc.somme("321", "425"), 746);
  assertTrue(calc.somme("abc", "cba") < 0);
  assertTrue(calc.somme("abc", "653") < 0);
  assertTrue(calc.somme("-145", "153") < 0);
}
A la construction de l’application le troisième test échoue. En révisant le code de la classe Calc, on s’aperçoit de l’erreur et on corrige le code de la méthode Calc.somme(String s1, String s2)
public int somme(String s1, String s2)
{
  int resultat = -1;
  int i1 = getInt(s1);
  int i2 = getInt(s2);
  if ((i1 >= 0) && (i2 >= 0)) resultat = i1 + i2;
  return resultat;
}
Après cette correction, la construction de l’application se fait sans échec. Vous pouvez vous exercer en mettant en place les tests pour la deuxième méthode de multiplication.

5. Désactiver le test unitaire Java

Dans certains cas, on pourrais avoir besoin de désactiver la phase de test afin de forcer la construction de l’application. Cela peut se faire de deux façons.

5.1. En ligne de commande

mvn -Dmaven.test.skip=true package

5.2. En modifiant le fichier pom.xml

Dans le fichier pom.xml du projet, ajouter la référence au plug-in surefire. Remarquer le paramètre: <skipTests>true</skipTests>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.18.1</version>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
]]>

Tutoriel Maven 3 – partie 2

Objectif de la partie 2 du tutoriel Maven: Cette 2eme partie du tutoriel Maven vise à construire pas à pas une application java qui s’exécute simplement en ligne de commande en invoquant le nom du fichier. L’application ne fait qu’afficher un message sur la console (sortie standard) mais peut servir de point de départ afin de construire ce type d’application. Prére-requis: le JDK est installé, cf. l’article: Installer Java sur Ubuntu ou compatible et Maven 3 est installé cf. l’artice: Tutoriel Maven 3 – partie 1

1. Première partie de ce tutoriel Maven: génerer un squelette d’application en ligne de commande

La commande à utiliser est:
mvn archetype:generate -DgroupId=com.example.hello \
    -DartifactId=helloworld -Dversion=1.0 -Dpackage=com.example.helloworld \
    -DarchetypeArtifactId=maven-archetype-quickstart \
    -DinteractiveMode=false
Remplacer: com.exemple.hello, helloworld, 1.0, com.example.helloworld  par les valeurs personnalisées de votre choix. Ceci crée l’arborescence de code source Java suivante: tutoriel maven structure helloworldIl s’agit de l’arborescence par défaut d’un projet Java Maven. Les codes source sont dans un dossier qui s’appelle src. Deux branches sont sous src:
  • test: contient les sources des test unitaires. Ce sujet ne sera pas abordé pour le moment.
  • main: contient les sources de l’application (dans le sous dossier java)
On remarque aussi la génération d’une classe Java unique qui constitue le point d’entrée de l’application App.java.

1.1. Construire l’application

Depuis le dossier helloworld/ de l’application:
mvn package
Ceci génère le fichier jar de l’application: helloworld-1.0.jar dans le sous-dossier target/

1.2. Exécuter cette application modèle

Depuis le dossier helloworld/ de l’application:
java -cp target/helloworld-1.0.jar com.example.helloworld.App
Hello World !
On est encore loin du but car il a fallu invoquer java avec deux paarmètres: le classpath et la classe principale.

2. Deuxième partie de ce tutoriel Maven: créer un jar exécutable

Pour cela on va utiliser le plug-in maven-assembly-plugin. On modifie donc le fichier pom.xml généré pour y ajouter toute la partie entre les balises <build>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.hello</groupId>
  <artifactId>helloworld</artifactId>
  <packaging>jar</packaging>
  <version>1.0</version>
  <name>helloworld</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.example.helloworld.App</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
             <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <appendAssemblyId>false</appendAssemblyId>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
Ensuite, après la reconstruction du fichier jar, l’exécution devient plus simple. On n’a plus à indiquer le nom de la classe principale. Le jar est exécutable de lui même.
mvn clean package
java -jar target/helloworld-1.0.jar
Hello World!
Il reste, toutefois, encore une étape pour atteindre l’objectif de n’invoquer que le nom du fichier.

3. Troisième partie de ce tutoriel Maven: créer un fichier exécutable.

3.1. Créer un script shell de démarrage

Dans un éditeur de texte, insérer le script suivant puis enregistrer sous le nom de boot.sh dans le dossier helloworld/
#!/bin/sh
EXEC=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && EXEC="./$0"
java=java
if test -n "$JAVA_HOME"; then
  java="$JAVA_HOME/bin/java"
fi
exec "$java" $java_args -jar $EXEC "$@"
exit 1

3.2. Créer un fichier exécutable manuellement

Maintenant si on exécute la commande:
cat boot.sh target/helloworld-1.0.jar > hello && chmod +x hello
On obtient un fichier exécutable autonome hello, qui peut être exécuté tout simplement par:
./hello
Hello World!

3.3. Créer le fichier exécutable par Maven

Pour inclure cette dernière tâche au cycle de vie Maven de notre projet, on utilise le plug-in exec-maven-plugin. Pour cela on rajoute cette portion de code au fichier pom.xml. Insérer juste après le dernier plug-in ajouté.
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.3.2</version>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>exec</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <executable>buildexec.sh</executable>
  </configuration>
</plugin>
Remarquez le buildexec.sh inclu dans la balise <executable>. Il s’agit du script que Maven va exécuter pour générer le fichier final et qu’on doit créer. Ce fichier doit effectuer les mêmes tâches que la commande manuelle effectuée précédemment. Il doit inclure donc
#!/bin/sh
cat boot.sh target/helloworld-1.0.jar > hello
chmod +x hello
A l’aide d’un éditeur de texte, créer ce fichier et le rendre exécutable:
chmod +x buildexec.sh
Enfin Maven pourra créer le fichier hello exécutable java autonome.
mvn package
./hello
Hello World!
]]>

Installer JDK d'Oracle sur Linux Debian ou compatibles

Objectif: installer le kit de développement Java (JDK) d’Oracle sur un système GNU/Linux Debian ou compatibles, notamment Ubuntu/Kubuntu pour les machines de bureau. 1. Vérifier la configuration d’apt

apt-cache search oracle-java
Si le retour de cette commande est vide, il faudra ajouter un dépôt (repository) PPA à la configuration d’apt. Sinon passer directement à 3. 2. Configurer apt
sudo add-apt-repository ppa:webupd8team/java
ensuite
apt-get update
3. Lister les versions de JDK Oracle disponibles pour le système
apt-cache search oracle-java | grep oracle-java[1-9]-installer

oracle-java7-installer - Oracle Java(TM) Development Kit (JDK) 7
oracle-java6-installer - Oracle Java(TM) Development Kit (JDK) 6
oracle-java8-installer - Oracle Java(TM) Development Kit (JDK) 8
4. Installer Oracle JDK version 8 (à titre d’exemple)
sudo apt-get install oracle-java8-installer
]]>

Installer Java sur Ubuntu ou compatibles

Objectif: installer Java / Ubuntu (JDK ou JRE  -le kit de développement Java  et/ou l’environnement d’exécution Java), sur un système Linux Ubuntu, Debian ou compatibles. Notamment Kubuntu pour les machines de bureau. Rappel: JRE est nécessaire pour exécuter des applications Java, JDK est nécessaire pour construire des applications Java. Parce qu’il n’est pas possible de construire des applications sans pouvoir les exécuter, l’installation de JDK contient toujours JRE. Remarque: Cet article ne traite que l’installation de OpenJDK l’implémentation libre de Java. Le JDK d’Oracle sera traité dans un prochain article.

1. Vérifier les installations de JRE Java / Ubuntu

sudo update-alternatives --list java

/usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
On obtient la liste des JRE avec leurs versions installés (ici version 6 seule). Si on obtient un message d’erreur “pas d’alternatives pour java“, c’est qu’aucune version de JRE n’est installée.

2. Vérifier les installations de JDK Java / Ubuntu

sudo update-alternatives --list javac
On obtient la liste des JDK avec leurs versions installés. Si on obtient un message d’erreur “pas d’alternatives pour javac”, c’est qu’aucune version de JDK n’est installée.

3. Lister les versions de JRE disponibles pour le système

apt-cache search openjdk | grep openjdk-[1-9]-jre | grep -v lib

openjdk-7-jre - environnement d'exécution Java OpenJDK qui utilise Hotspot JIT
openjdk-7-jre-headless - environnement d'exécution Java OpenJDK utilisant Hotspot JIT
openjdk-6-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-7-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
openjdk-6-jre - environnement d'exécution Java OpenJDK qui utilise Hotspot JIT
openjdk-6-jre-headless - environnement d'exécution Java OpenJDK utilisant Hotspot JIT

4. Installer JRE sur le système Linux Ubuntu (version 7 à titre d’exemple)

sudo apt-get install openjdk-7-jre
Utiliser “openjdk-7-jre-headless” si vous n’avez pas besoin d’interface graphique (cas de machine serveur).

5. Lister les versions de JDK disponibles pour le système

apt-cache search openjdk | grep openjdk-[1-9]-jdk

openjdk-7-jdk - kit de développement OpenJDK - JDK
openjdk-6-jdk - kit de développement OpenJDK - JDK

6. Installer JDK sur le système Linux Ubuntu (version 7 à titre d’exemple)

sudo apt-get install openjdk-7-jdk

7. Configurer le JRE actif sur le système Debian dans le cas d’installation simultanée de plusieurs versions

sudo update-alternatives --config java

  Sélection   Chemin                                         Priorité  État
  ------------------------------------------------------------
  * 0            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1071      mode automatique
    1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1061      mode manuel
    2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1071      mode manuel

  Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
Taper 1 puis “Entrée” pour changer vers la version 6.

8. Configurer le JDK actif sur le système Debian dans le cas d’installation simultanée de plusieurs versions

sudo update-alternatives --config javac

  Sélection   Chemin                                         Priorité  État
  ------------------------------------------------------------
  * 0            /usr/lib/jvm/java-7-openjdk-i386/bin/javac   1071      mode automatique
    1            /usr/lib/jvm/java-6-openjdk-i386/bin/javac   1061      mode manuel
    2            /usr/lib/jvm/java-7-openjdk-i386/bin/javac   1071      mode manuel

  Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
Taper 1 puis “Entrée” pour changer vers la version 6.]]>

Tutoriel Maven 3 – partie 1

Objectif de la partie 1 du tutoriel Maven:  Installer Maven 3 afin de l’utiliser dans un environnement de développement. Cible: Système Linux Ubuntu ou compatible, notamment Debian pour les machines serveurs (Maven-Debian constitue un couple parfait pour monter un serveur de build et test unitaires pour le développement).

1. Installer Maven 3

sudo apt-get install maven
Remarquer qu’il ne faut pas indiquer la version 3 de Maven dans cette commande.

2. Vérifier l’installation

mvn -version
L’installation et la configuration de Maven a été correctement effectuée si la réponse débute par la ligne (remarquer le numéro de version 3.x.x):
Apache Maven 3.x.x
A défaut de ce résultat, notamment si on obtient “Apache Maven 2.x.x” il convient d’effectuer une étape supplémentaire de configuration pour activer la version 3 de Maven.

2. Configurer l’installation de Maven

sudo update-alternatives --config mvn
  Selection    Path                       Priority   Status
------------------------------------------------------------
* 0            /usr/share/maven2/bin/mvn   200       auto mode
  1            /usr/share/maven/bin/mvn    150       manual mode
  2            /usr/share/maven2/bin/mvn   200       manual mode

Press enter to keep the current choice[*], or type selection number:
La réponse à la commande: sudo update-alternatives –config mvn , montre l’existence d’une autre version installée en tant que version par défaut. Il convient de modifier la configuration par défaut vers la la ligne qui contient: /usr/share/maven/bin/mvn (dans l’exemple la ligne 1). Taper donc 1 et Entrée. Remarque: La désinstallation de la version 2 de Maven par:
sudo apt-get remove maven2
Définira automatiquement la version 3 comme version par défaut. Ceci peut constituer une alternative à la configuration.]]>

Utiliser TomEE avec Eclipse

Objectif: Configurer Eclipse pour utiliser le serveur d’applications TomEE comme cible de développement. Prérequis: TomEE est installé sur la machine locale cf. l’article “Installer TomEE” 1. Activer la perspective Java JEE Soit activer le bouton dans le coin supérieur droit. Soit utiliser le menu: Window / Open perspective / Other… puis choisir Java EE dans la liste 2. Faire apparaître l’onglet “Servers” du volet bas Utiliser le menu: Window / Show View / Servers eclipse-tomee-1 3. Paramétrer TomEE Cliquer sur le lien “No servers are available…” eclipse-tomee-2 Une fenêtre de paramétrage d’un nouveau serveur s’affiche. eclipse-tomee-3Choisir: Apache / Tomcat v7.0 server. Ensuite “Nexteclipse-tomee-4eclipse-tomee-5 Saisir un nom significatif et utiliser le bouton “Browse..” pour sélectionner l’emplacement d’installation de TomEE. Utiliser ensuite le bouton “Next” et “Finish” dans le dernier écran. eclipse-tomee-6TomEE est désormais intégré à Eclipse et peut exécuter des applications pendant leur développement.]]>

Postgres pgAdmin 3 pour administrer PostgreSQL

 Objectif: Postgres pgAdmin est un outils d’administration du serveur de base de données PostgreSQL. L’objectif est donc de pouvoir administrer / utiliser PostgreSQL de manière simple (dans le sens création, modification et suppression d’objets du serveur: utilisateurs, bases de données, tables…) avec cet utilitaire à interface graphique.

Cible: GNU Linux Ubuntu ou compatible, équipé d’un gestionnaire de bureau (KDE, GNOME ..)

Cet article fait partie d’une série qui concerne le serveur de bases de données PostgreSQL et son utilisation dans un environnement de développement:
  1. Installation de base de PostgreSQL
  2. Cet article: Utiliser Postgres pgAdmin 3 pour administrer PostgreSQL
  3. Installer PostgreSQL 10
  4. Reconfigurer l’installation par défaut de PostgreSQL 10
  5. Utiliser PostgreSQL 10 dans un environnement de développement
  6. Administrer PostgreSQL avec psql
  7. Postgres pgAdmin 4 : installation et configuration
  8. Postgres pgAdmin 4: Utilisation courante

1. Installer Postgres pgAdmin 3

sudo apt-get install pgadmin3
S’agissant d’une interface graphique, son icône de lancement devrait alors apparaître dans les menus du bureau. Sous KDE par exemple : Menu K / Applications / Développement, pgAdmin III (avec une tête d’éléphant comme icône).

2. Paramétrage de base de Postgres pgAdmin

Le premier lancement de pgAdmin donne l’écran: Postgres pgAdmin écran initial Utiliser le menu: Fichier / Ajouter un serveur… Postgres pgAdmin ajouter serveur Nom: Serveur local, ne sert que pour l’affichage, choix libre. Hôte: localhost si le serveur est installé sur la même machine que pgAdmin. Sinon adresse (IP ou DNS) de la machine distante. Port: 5432 par défaut Base de maintenance: postgres créée et existe par défaut Nom utilisateuradmin Celui qui a été créée à l’installation du serveur (cf. l’article à ce sujet).      

A la validation l’accès au serveur est disponible

Postgres pgAdmin accés serveur On remarquera la présence de l’unique base de donnée postgres et de l’utilisateur (rôle de connexion) postgres. Ce sont les deux objets créées par défaut lors de l’installation du serveur. On remarquera aussi la présence de l’utilisateur admin qui a été créée après l’installation du serveur (cf. l’article à ce sujet).          

3. Création d’une base de données

  • Se positionner sur le nœud “Base de données (1)
  • Clic k droit et utiliser le menu contextuel “Ajouter une base de données…
pgAdmin création BD Nom: Nom significatif, unique sur le même serveur. Propriétaire: Choisir l’utilisateur dans la liste. Commentaire: Facultatif mais très utile pour la documentation.               A la validation, la base de données est créée. Postgres pgAdmin BD créée

4. Création de tout autre objet avec Postgres pgAdmin

Le même mode de fonctionnement est, généralement,  valable pour la création de tout autre objet:
  • Se positionner sur le nœud correspondant au type de l’objet cible: schéma, table..
  • Clic k droit et utiliser le menu contextuel
]]>

Installer PostgreSQL

Objectif :  Installer le serveur de base de données relationnelles PostgreSQL afin de l’utiliser dans un environnement de développement. Cible: Système GNU Linux Debian ou compatible, notamment Ubuntu/KUbuntu pour les machines de bureau. Cet article fait partie d’une série qui concerne le serveur de bases de données PostgreSQL et son utilisation dans un environnement de développement:

  1. Cet article: Installation de base de PostgreSQL
  2. Utiliser Postgres pgAdmin 3 pour administrer PostgreSQL
  3. Installer PostgreSQL 10
  4. Reconfigurer l’installation par défaut de PostgreSQL 10
  5. Utiliser PostgreSQL 10 dans un environnement de développement
  6. Administrer PostgreSQL avec psql
  7. Postgres pgAdmin 4 : installation et configuration
  8. Postgres pgAdmin 4: Utilisation courante
1. Lister les versions de PostgreSQL disponibles pour votre système
apt-cache search postgresql | grep "^postgresql-[0-9].[0-9] "
2. Installer une des versions listées (par exemple postgresql-9.3)
sudo apt-get install postgresql-9.3
3. Vérifier l’installation
sudo service postgresql
On obtient un retour:
Usage: /etc/init.d/postgresql {start|stop|restart|reload|force-reload|status}
Ce retour nous renseigne sur les commandes utilisables pour contrôler le fonctionnement du serveur, notamment la commande “status” qui permet de se renseigner sur l’état de fonctionnement: online (fonctionnement) ou down (arrêt). 4. Configurer l’accès  au serveur
sudo -u postgres psql
Permet de se connecter en tant que “postgres” qui est le super administrateur du serveur par défaut. Une fois connecté créer un utilisateur avec des droits suffisants:
CREATE USER admin WITH PASSWORD 'admin' CREATEDB CREATEUSER;
Crée l’utilisateur “admin” avec le mot de passe “admin” et qui a les droits de création de bases de données et de création d’autres utilisateurs.
SELECT * FROM pg_catalog.pg_user;
Vérifie la réussite de la commande précédente, l’utilisateur “admin” doit apparaître dans la liste. Désormais, vous pouvez utiliser ce login et mot de passe pour vous connecter au serveur.
\q
Se déconnecter du serveur.]]>

Installer Apache Tomcat – TomEE sur Linux Ubuntu ou compatibles

TomEE est un serveur d’application JEE dérivé de Tomcat et en hérite beaucoup de ses performances. L’installation est supposée à faire sur une machine de bureau (Ubuntu ou compatibles) pour développer des applications qui les cible ou sur une machine serveur (Debian ou compatibles) pour le test ou la production. Ce tutorial Apache Tomcat  (Tomee) donne la procédure détaillée pas à pas.

1. Télécharger le serveur Apache Tomcat (TomEE)

depuis le site Internet http://tomee.apache.org/downloads.html Par exemple le fichier apache-tomee-1.7.1-plus.tar.gz: Version 1.7.1 catégorie plus qui contient le serveur complet.

2. Décompacter l’archive dans un emplacement de votre choix

cd /opt
sudo tar xzvf ~/download/apache-tomee-1.7.1-plus.tar.gz
sudo ln -s apache-tomee-1.7.1-plus tomee
Ceci revient à – Se placer dans le dossier /opt – Décompacter l’archive téléchargée ce qui crée un dossier /opt/apache-tomee-1.7.1-plus – Créer un lien symbolique /opt/tomee qui pointe vers /opt/apache-tomee-1.7.1-plus ce qui simplifie l’accès

3. Créer un utilisateur système “tomee”

sudo useradd --system tomee
sudo chown tomee:tomee -R /opt/tomee/
Ceci revient à – Créer l’utilisateur système (sans possibilité de connexion et sans mot de passe) – Rendre le dossier /opt/tomee (donc /opt/apache-tomee-1.7.1-plus) et tout ce qu’il contient la propriété de cet utilisateur.

4. Installer le lanceur de processus Java “jsvc”

sudo apt-get install jsvc

5. Créer le script de génération des variables d’environnement

sudo vi /opt/tomee/bin/setenv.sh
Ensuite saisir dans l’éditeur..
JAVA_HOME=/usr/lib/jvm/java-7-oracle
JSVC=/usr/bin/jsvc
TOMCAT_USER=tomee
Bien entendu remplacer, au besoin, par vos propre données notamment pour la version de Java. Puis rendre exécutable:
sudo chmod +x /opt/tomee/bin/setenv.sh

6. Créer le script de lancement du serveur Apache Tomcat (TomEE)

Il s’agit du script /etc/init.d/tomee. L’emplacement est à respecter strictement mais le nom du fichier peut être différent. Un exemple opérationnel de script de lancement est disponible au téléchargement : tomee (renommer de tomee.txt → tomee). Ne pas oublier de rendre exécutable:
sudo chmod +x /etc/init.d/tomee

7. Paramétrer le système pour que Tomcat (TomEE) démarre et s’arrête automatiquement

Cette étape est optionnelle, ne pas faire s’il s’agit d’une installation sur une machine de bureau pour le développement.
sudo update-rc.d tomee defaults
Si le fichier (script) de lancement s’appelle autrement (par exemple tomcat), remplacer par le nom réel.

8. Tester l’installation

Démarrage:
sudo service tomee start
Essai de fonctionnement: utiliser un navigateur web avec l’adresse: http://localhost:8080 S’il s’agit d’une machine distante (cas de l’installation sur un serveur),remplacer localhost par l’adresse IP ou le nom DNS de la machine distante. Arrêt:
sudo service tomee stop
Tomcat (TomEE) devrait s’arrêter.]]>