Généralités sur les actions

Une action est une fonctionnalité de l'EAD3 permettant de réaliser un ou plusieurs traitements sur un ou plusieurs serveurs cibles.

Une action est construite à partir de deux éléments :

  • un fichier XML Creole[1] permettant de décrire l'action et de définir les variables et/ou les configurations nécessaires pour construire l'interface web ;
  • un fichier de recette SaltStack[2] (nommé States) permettant d'effectuer l'action demandée sur les serveurs cibles.

Ces fichiers sont stockés sur le serveur dans le répertoire /usr/share/eole/creole/extra/.

Un sous-répertoire correspond à une action et son nom est le nom de l'action.

Par exemple, l'action majreport est définie à la création du répertoire enfant /usr/share/eole/creole/extra/majreport/ qui contient le XML Creole, et éventuellement une recette SaltStack.

Si une recette SaltStack est associée à l'action, elle doit obligatoirement être placée dans le répertoire enfant sls/ de l'action.

Exemple

1
root@scribe:~# tree /usr/share/eole/creole/extra/backuponce
2
/usr/share/eole/creole/extra/backuponce
3
├── 00_action.xml
4
└── sls
5
    └── eole
6
        └── init.sls
7
8
2 directories, 2 files
9
root@scribe:~#

Dans les dossiers sls des actions déjà existantes, un sous-dossier eole est présent. Il contient les recettes SaltStack fournies par EOLE.

Truc & astuce

Plusieurs recettes SaltStack successives peuvent être appelées. Un fichier init.sls permet d'inclure toutes les recettes à appliquer dans un ordre spécifique.

Attention

Pour personnaliser le comportement d'une action existante il faut placer les recettes SaltStack directement dans le répertoire parent.

Par exemple pour surcharger le comportement des recettes EOLE de l'action majonce il faut placer les recettes personnalisées dans /usr/share/eole/creole/extra/majonce/sls/.

Les fichiers personnalisés des recettes SaltStack peuvent être templatisés avec Jinja2[3].

Dans ce cas, l'accès aux variables Creole se fait via les pillars[2].

Exemple

Si l'on souhaite accéder à la variable Creole hour de la famille mise_a_jour de l'action majonce, il faut écrire dans la recette : pillar['majonce.mise_a_jour.hour'].

Diagramme de fonctionnement
Diagramme de fonctionnement

Exemple

1
<creole>
2
    <family_action name="Catégorie contenant une ou plusieurs actions">
3
        <action type="reader"
4
            title="Nom appraissant dans l'interface web"
5
            description="Description de l'action apparaissant dans l'interface web"
6
            image="icons/edit-find.svg">
7
            <profile>ead_admin</profile>
8
            <ewtapp>ead</ewtapp>
9
            <tag>étiquette1</tag>
10
            <tag>étiquette2</tag>
11
        </action>
12
    </family_action>
13
14
    <variables>
15
        <family name="options">
16
            <variable name="filename" type="filename">
17
        </family>
18
    </variables>
19
</creole>
20

Balises et variables qui permettent de définir l'interface pour une action de type formulaire :

  • <family_action> : Cette balise est obligatoire, elle permet de définir la catégorie qui contient l'action (si on veut ranger l'action à créer dans une catégorie existante, il suffit de renseigner le nom de la catégorie, si on veut créer une nouvelle catégorie, il suffit de mettre un nouveau nom) ;

  • <action> : Cette balise est obligatoire, elle définit l'action d'une manière générique ;

    type : Le type de l'action, exemple reader pour une action d'affichage, form pour une action de type formulaire, custom pour une action personnalisée ;

    title : Intitulé de l'action ;

    descriptif : Courte description de l'action ;

    image : Les icônes disponibles sont dans le répertoire : /usr/share/ewt/static/images/icons/ ;

  • <family name="options"><variable name="filename" type="filename"> : Permettent de définir les variables Creole nécessaires au bon fonctionnement de l'action ;

  • <ewtapp> : Applications dans lesquelles l'action doit apparaître (une balise par application), ici seulement l'EAD ;

  • <profile> : L'action n'est accessible que pour le profil ead_admin ou un profil équivalent ou supérieur ;

  • <tag> : Permet de déclarer une ou plusieurs étiquettes dans l'interface EAD.

Truc & astuce

Il est possible, comme dans n'importe quel XML Creole, de mettre en place des contrôles et des conditions sur les variables déclarées.