rougail/doc/dev/config.md

150 lines
7.3 KiB
Markdown
Raw Normal View History

2021-02-14 10:12:42 +01:00
# Personnalisons la configuration de Rougail
La configuration de rougail se trouve dans l'objet RougailConfig :
2021-02-14 18:03:15 +01:00
```python
2021-02-14 10:12:42 +01:00
from rougail import RougailConfig
```
C'est un simple dictionnaire python avec différentes clefs.
Pour modifier il suffit de faire :
2021-02-14 18:03:15 +01:00
```python
2021-02-14 10:12:42 +01:00
RougailConfig[key] = value
```
## Ajout d'une fonction de conversion
Les fonctions de conversion fait parti du moteur de rougail. Il converti les informations des dictionnaires pour créer des variables Tiramisu.
La clef "extra_annotators" permet d'ajouter des fonctions complémentaires.
## Configuration de chargement des dictionnaires
### Les répertoires des dictionnaires
2021-02-14 10:12:42 +01:00
Il existe deux types de répertoires de dictionnaires :
- les dictionnaires principaux avec la clef "dictionaries_dir". La valeur par défaut est ['/srv/rougail/dictionaries']. Cette variable doit contenir la liste des répertoires contenants des dictionnaires.
2022-11-02 22:52:50 +01:00
Les dictionnaires sont chargés dans l'ordre des répertoires. Chaque répertoire est chargé les uns après les autres. A l'intérieur de ces répertoires les fichiers XML ou YAML seront classés par ordre alphabétique.
2021-02-14 10:12:42 +01:00
2022-11-02 22:52:50 +01:00
Il n'y a pas de classement par ordre alphabétique de l'ensemble des fichiers XML ou YAML de tous les répertoires.
2021-02-14 10:12:42 +01:00
2021-02-14 18:03:15 +01:00
Les familles et variables de ces dictionnaires sont classés, par défaut, dans l'espace de nom "rougail". Il est possible de changer le nom de cet espace de nom avec la clef "variable_namespace".
2021-02-14 10:12:42 +01:00
2021-02-14 18:03:15 +01:00
- les dictionnaires extra avec la clef "extra_dictionaries". La valeur est un dictionnaire avec l'ensemble des espaces de nom. La clef étant l'espace de nom et la valeur étant une liste de répertoire.
2021-02-14 10:12:42 +01:00
Par exemple pour ajouter l'extra "example" il faut faire :
2022-11-03 22:17:43 +01:00
```python
2021-02-14 10:12:42 +01:00
RougailConfig['extra_dictionaries']['example'] = ['/dir1', '/dir2']
```
Les dictionnaires sont chargés dans le même ordre que les dictionnaires principaux.
2022-11-02 22:52:50 +01:00
### La DTD et le schema YAML
2021-02-14 10:12:42 +01:00
2022-11-02 22:52:50 +01:00
Rougail a besoin du fichier de la DTD pour lire les fichiers dictionnaire de type XML et du schema YAML pour les fichiers dictionnaire de type YAML.
2021-02-14 10:12:42 +01:00
2022-11-02 22:52:50 +01:00
Par défaut le fichier de la DTD et le schema YAML sont dans le sous répertoire "data" du répertoire de code. Le nom du fichier est rougail.dtd et rougail.yml.
2021-02-14 10:12:42 +01:00
2022-11-02 22:52:50 +01:00
Pour pouvez changer le nom du fichier DTD avec la clef "dtdfilename" et le nom du schema YAML avec la clef "yamlschema_filename".
2021-02-14 10:12:42 +01:00
### Le fichier de fonction
2021-02-14 10:12:42 +01:00
Le fichier qui contient les fonctions personnalisés est géré dans la clef "functions_file" et a comme valeur par défaut "/srv/rougail/functions.py". Cette clef peut contenir une liste s'il y a plusieurs fichiers.
2021-02-14 10:12:42 +01:00
Les fonctions doivent retourner une valeur, même si la variable que l'on calcul est une variable multiple.
Si la fonction peut retourner une valeur multiple (une liste), il faut mettre le nom de la fonction dans la clef "multi_functions".
### La variable auto_freeze
2021-02-14 10:12:42 +01:00
La propriété auto_freeze n'est appliqué que une variable spécifique passe à True. Par défaut le nom de la variable est "instancied_module", mais il est possible de changer le nom de cette variable via la clef "auto_freeze_variable".
### Les modes
Les modes sont personnalisables dans Rougail. Par défaut les modes sont "basic", "normal" et "expert".
Il est possible de changer cette liste via la clef "modes_level".
Si vous changer ces valeurs, penser à changer les modes par défaut des familles et des variables.
### Le mode par défaut pour une famille
Le mode par défaut d'une famille est "basic". Il est possible de changer le mode par défaut d'une famille via la clef "default_family_mode".
### Le mode par défaut pour une variable
Le mode par défaut d'une variable est "normal". Il est possible de changer le mode par défaut d'une variable via la clef "default_variable_mode".
### Le nom des fonctions internes
2021-02-14 10:12:42 +01:00
Il est possible d'ajouter des fonctions interne via la clef "internal_functions".
## Configuration de la templatisation
### Le répertoire des templates
Le répertoire des templates est géré dans la clef "templates_dir" et a comme valeur par défaut : "/srv/rougail/templates". Cette clef peut contenir une liste s'il y a plusieurs répertoires.
### Le répertoire des patchs
2021-02-14 10:12:42 +01:00
Le répertoire des patches est géré dans la clef "patches_dir" et a comme valeur par défaut : "/srv/rougail/patches".
### Le répertoire temporaire
2021-02-14 10:12:42 +01:00
Le répertoire temporaire est utile lors de la génération de template. Il contient une copie des templates avec, éventuellement, les patches appliqués sur les templates.
Le répertoire de temporaire est géré dans la clef "tmp_dir" et a comme valeur par défaut : "/srv/rougail/tmp".
### Le répertoire de destination des fichiers générés
2021-02-14 10:12:42 +01:00
Le répertoire de destination des fichiers générés est géré dans la clef "destinations_dir" et a comme valeur par défaut : "/srv/rougail/destinations".
2023-01-19 12:09:44 +01:00
### Les informations systemd
2022-03-06 18:54:57 +01:00
2023-01-19 12:09:44 +01:00
Un certain nombre de variables concerne les templates systemd.
2022-03-06 18:54:57 +01:00
2023-01-19 12:09:44 +01:00
#### Les services
Les services sont générés dans le sous-répertoire de la clef "systemd_service_directory" (par défault "/systemd") du répertoire "destinations_dir" (voir plus haut) .
Par contre la racine de ce sous répertoire sur le système finale sera la valeur de la clef "systemd_service_destination_directory" (par défaut "/usr/local/lib").
Les autres services, non généré via Rougail, devront être dans le répertoire de la clef "system_service_directory" (par défault "/usr/lib/systemd/system").
Lorsqu'on [réécrit un service](../service/override.md) le fichier définit dans la clef "systemd_service_file" (par défaut "rougail.conf").
Les [IP](../service/ip.md) seront dans le fichier définit dans la clef "systemd_service_ip_file" (par défaut "rougail_ip.conf").
### Les tmpfiles
Les fichiers tmpfiles sont générés dans le sous-répertoire de la clef "systemd_tmpfile_directory" (par défault "/tmpfiles.d") du répertoire "destinations_dir" (voir plus haut) .
Par contre la racine de ce sous répertoire sur le système finale sera la valeur de la clef "systemd_tmpfile_factory_dir" (par défaut "/usr/local/lib").
Le fichier généré dans ce répertoire aura le nom définit dans la clef "systemd_tmpfile_file", donc "0rougail.conf" par défaut.
2022-03-06 18:54:57 +01:00
## La configuration par défaut des fichiers
### Le moteur de templates par défaut
2021-02-22 19:28:51 +01:00
2022-11-10 22:58:24 +01:00
Le moteur de template est géré dans la clef "default_files_engine" et a comme valeur par défaut : "cheetah". Les valeurs possible sont "none", "cheetah" ou "jinja".
2021-02-22 19:28:51 +01:00
### Les droits par défaut des fichiers
2021-02-22 19:28:51 +01:00
2023-01-25 22:48:13 +01:00
Les droits des fichiers générés est géré dans la clef "default_files_mode" (valeur de type nombre) et a comme valeur par défaut : 644.
2021-02-22 19:28:51 +01:00
### Le propriétaire par défaut des fichiers
2021-02-22 19:28:51 +01:00
Le propriétaire des fichiers générés est géré dans la clef "default_files_owner" et a comme valeur par défaut : "root".
Le groupe propriétaire des fichiers générés est géré dans la clef "default_files_group" et a comme valeur par défaut : "root".
2021-02-22 19:28:51 +01:00
### La méthode d'inclusion par défaut des fichiers
2021-02-22 19:28:51 +01:00
La méthode d'inclusion des fichiers générés est géré dans la clef "default_files_included" et a comme valeur par défaut : "no". Les valeurs possible sont "no", "name" et "content".
'default_files_included': 'no',
2021-02-22 19:28:51 +01:00
## La configuration du moteur de templates
2022-11-10 22:58:24 +01:00
Le moteur de template est géré dans la clef "default_overrides_engine" et a comme valeur par défaut : "cheetah". Les valeurs possible sont "none", "cheetah" ou "jinja".