Ajout de script exécuté à l'instance ou au reconfigure

Il est parfois nécessaire d'ajouter un script qui sera exécuté à l'instanciation ou au reconfigure du module.

EOLE met en place des mécanismes permettant d'exécuter des scripts avant ou après l'instanciation ou la reconfiguration.

Ces scripts doivent être dans l'un des répertoires suivants :

  • /usr/share/eole/preservice : exécution avant l'arrêt des services ;

  • /usr/share/eole/pretemplate : exécution avant la templatisation des fichiers ;

  • /usr/share/eole/postemplate : exécution entre la templatisation des fichiers et le redémarrage des services ;

  • /usr/share/eole/postservice : exécution après le redémarrage des services.

Attention

Chacun des scripts doit respecter les contraintes exigées par l'outil run-parts, et, en particulier :

  • être exécutable ;
  • être sans extension.

Truc & astuce

L'ensemble de ces scripts se jouent de façon alphanumérique.

Les scripts fournit par EOLE sont préfixés par des chiffres et un tiret :

1
root@scribe:/usr/share/eole/preservice# ll
2
total 28
3
drwxr-xr-x  2 root root 4096 sept. 28 10:24 ./
4
drwxr-xr-x 29 root root 4096 sept. 28 10:24 ../
5
-rwxr-xr-x  1 root root  387 sept. 28 09:16 00-anetwork*
6
-rwxr-xr-x  1 root root  464 sept.  7 15:08 00-bareoswebui*
7
-rwxr-xr-x  1 root root  500 juin  26  2015 00-save-sid*
8
-rwxr-xr-x  1 root root  702 sept.  7 15:36 00-web*
9
-rwxr-xr-x  1 root root  235 sept. 28 09:16 99-ifupdown*
10
root@scribe:/usr/share/eole/preservice#

Le type d'appel (instance ou reconfigure) est envoyé au script sous la forme d'un argument :

1
#!/bin/bash
2
if [ "$1" == "instance" ]; then
3
    echo "ce code n'est exécuté qu'à l'instance"
4
elif [ "$1" = "reconfigure" ] ;then
5
    echo "ce code n'est exécuté qu'au reconfigure"
6
fi

Attention

Si le script quitte avec un autre code de retour que 0, l'instance ou le reconfigure s'arrête immédiatement.

Il est donc préférable que le script soit de la forme :

1
#!/bin/bash
2
# <<< SCRIPT >>>
3
exit 0