Gestion des modèles de serveurs¶
Les services applicatifs¶
Un modèle de serveur est constitué d’un certain nombre de « services applicatifs ». Ces services applicatifs définissent les fonctionnalités présentes sur le serveur qui utilisera le modèle de serveur (ex: serveur de fichiers, serveur Web, annuaire LDAP, etc).
Quelques notions d’importance
- Un service applicatif n’est pas un paquet au sens d’une distribution GNU/Linux. C’est l’association d’un dictionnaire de configuration au sens EOLE, de fichiers (ou patrons de fichiers) à déployer et de paquets à installer.
- Les services applicatifs peuvent « fournir » des services génériques (voir l’exemple ci dessous).
- Deux services applicatifs fournissant le même service générique ne peuvent pas être installés sur un même serveur. Ils sont en conflit.
- Un service applicatif est associé à une et une seule sous-version (release) et vice versa.
- Un service applicatif peut avoir des dépendances envers d’autres services applicatifs, génériques ou non. Par contre, ils doivent tous être liés à la même sous-version.
Fichiers de définition¶
Les services applicatifs des modèles de serveur « racines » sont décrit
dans des fichiers au format YAML. Ceux ci sont disponibles dans le
répertoire dataModel/dataset/applicationservices/
:
- Chaque source est déclarée par un sous répertoire
<SOURCE NAME>
; - Chaque sous-version de chaque source est déclarée par un sous répertoire
<SOUS-VERSION>
dans<SOURCE NAME>
contenant un fichier descriptif de la source :source.yaml
; - Chaque service applicatif est contenu dans son sous-répertoire
<APP-SERVICE-NAME>/
et contient :- Le descriptif du service dans un fichier YAML :
service.yaml
; - Des répertoires contenant les fichiers déclarés, par type de
fichier :
- Les dictionnaires dans
dictionaries/
; - Les dictionnaires supplémentaires dans
extra_dictionaries/
; - Les fonctions personnalisées de creole utilisées par GenConfig
dans
creole_funcs/
; - Les modèles de fichier de configuration dans
templates/
; - Les scripts pré-service dans
preservices/
; - Les scripts post-service dans
postservices/
; - Les scripts pré-template dans
pretemplates/
; - Les scripts post-template dans
posttemplates/
; - Tous les autres fichiers dans
files/
, reproduisant l’arborescence où les fichiers doivent être présents.
- Les dictionnaires dans
- Le descriptif du service dans un fichier YAML :
Format du fichier de définition de la source
Le fichier de définition de la source est au format YAML et doit, dans la version 0.1, contenir les éléments suivants :
Nom de la clef | type | description |
---|---|---|
format |
String | version du format |
name |
String | nom du service applicatif |
release |
String | nom du service applicatif |
description |
Text | description du service applicatif |
Format du fichier de définition des services applicatifs
Le fichier de définition des services est au format YAML et doit, dans la version 0.1, contenir les éléments suivants :
Nom de la clef | type | description |
---|---|---|
format |
String | version du format |
name |
String | nom du service applicatif |
description |
Text | description du service applicatif |
depends |
List | services applicatifs requis |
packages |
List | paquets systèmes requis |
dictionaries |
List | noms de fichier des dictionnaires |
extra_dictionaries |
Dict | noms de fichier des dictionnaires supplémentaires |
templates |
List | modèles de fichiers de configuration |
creole_funcs |
List | nom des fichiers de fonctions creole personalisées |
preservices |
List | nom des scripts pré-services |
postservices |
List | nom des scripts post-services |
pretemplates |
List | nom des scripts pré-templates |
posttemplates |
List | nom des scripts post-templates |
files |
Dict | fichiers fournis par les paquets |
L’élément extra_dictionaries
contient un dictionnaire dont les clefs
sont les noms des systèmes supplémentaires :
Nom de la clef | type | description |
---|---|---|
bareos |
List | noms des dictionnaires supplémentaires |
schedule |
List | noms des dictionnaires supplémentaires |
L’élément files
contient un dictionnaire dont les clefs sont les
noms de fichiers et la valeur est un dictionnaire contenant :
Nom de la clef | type | description |
---|---|---|
owner |
Str | nom du propriétaire du fichier |
group |
Str | nom du group propriétaire du fichier |
mode |
Octal | permissions d’accès au fichier |
Le fichier suivant illustre la définition du service applicatif eole-amon
:
---
format: 0.1
name: eole-amon
description: |-
configuration du module EOLE : Amon
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
depends:
- eole-server
- eole-sso
- eole-reverseproxy
- eole-dns
- eole-dhcrelay
- eole-era
- eole-proxy
- eole-vpn
- eole-radius
- eole-antivirus
- eole-wpad
packages:
- pppoe
- conntrack
dictionaries:
- 14_agregation.xml
- 40_amon_conteneurs.xml
- 20_vpn_amon.xml
- 30_amon.xml
extra_dictionaries: {}
templates:
- cron-root
- rt_tables
- agregation.logrotate
- host.conf
- amon.sudo
- agregation.conf
creole_funcs: []
preservices: []
postservices: []
pretemplates: []
posttemplates: []
files:
/usr/sbin/agregation.sh:
group: root
mode: 0755
owner: root
/usr/share/ead2/backend/config/actions/actions_amon.cfg:
group: root
mode: 0644
owner: root
/usr/share/ead2/backend/config/perms/perm_amon.ini:
group: root
mode: 0644
owner: root
/usr/share/ead2/backend/config/roles/roles_amon.ini:
group: root
mode: 0644
owner: root
/usr/share/eole/sbin/agregation:
group: root
mode: 0755
owner: root
Le fichier suivant illustre la définition du service applicatif eole-annuaire
:
---
format: 0.1
name: eole-annuaire
description: |-
Templates et dictionnaires pour le service Annuaire EOLE
Configuration du serveur slapd pour EOLE
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
depends:
- eole-client-annuaire
packages: []
dictionaries:
- 20_annuaire.xml
- 23_annuaire.xml
extra_dictionaries:
schedule:
- 01_annuaire.xml
templates:
- 00_annuaire.ldif
- default.slapd
- slapd.conf
- DB_CONFIG
creole_funcs: []
preservices: []
postservices: []
pretemplates:
- 00-annuaire
posttemplates:
- 00-annuaire
- 02-annuaire
files:
/etc/bareos/bareosfichiers.d/annuaire.conf:
group: root
mode: 0644
owner: root
/usr/share/eole/annuaire/password_files/annuaire.ini:
group: root
mode: 0644
owner: root
/usr/share/eole/bareos/restore/ldap.py:
group: root
mode: 0644
owner: root
/usr/share/eole/sbin/active_replication.py:
group: root
mode: 0755
owner: root
/usr/share/eole/sbin/ldap_pwd.py:
group: root
mode: 0755
owner: root
/usr/share/eole/schedule/scripts/annuaire:
group: root
mode: 0755
owner: root
/usr/share/zephir/monitor/configs/services/20_ldap.srv:
group: root
mode: 0644
owner: root