nutools/doc/RUNS.txt

153 lines
5.6 KiB
Plaintext

# -*- coding: utf-8 mode: text -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
Les scripts RUNS sont des scripts servant à déployer certains services ou à
faire certaines opérations.
runs diffère un peu de uinst, qui est orienté copie de fichiers et configuration
d'une arborescence. Avec runs, chaque script fait une seule opération, en
utilisant éventuellement certains fichiers disponibles dans le répertoire du
script.
RUNSPATH contient une liste de répertoires qu'il faut initialiser avec la
commande 'runs --init'. L'arborescence est de la forme:
runsdir
+- scripts
| \_ SCRIPTS...
+- hosts
| \_ HOSTS...
| + runs.conf
| + sysinfos.conf
| + default
| \_ SCRIPTS...
\_ DOMAINS...
\_ HOSTS...
+ runs.conf
+ sysinfos.conf
+ default
\_ SCRIPTS...
Le répertoire scripts contient les scripts généraux.
SCRIPTS correspondant aux fichiers de scripts, qui n'ont pas de contrainte sur
la façon de les nommer. HOSTS correspond aux répertoires d'hôtes, qui peuvent
contenir des fichiers de configuration ou d'autres scripts. DOMAINS correspond
aux domaines de hôtes pleinement qualifiés. Ces répertoire contiennent des
répertoires d'hôtes.
Le répertoire hosts contient des configuration pour des hôtes sans domaine. Les
hôtes pleinements qualifiés sont classés par domaine, puis par nom d'hôte. Par
exemple, si on cherche un script ou un fichier de configuration pour l'hôte
'medusa.univ.run', il sera d'abord cherché dans 'runsdir/univ.run/medusa' puis
dans 'runsdir/hosts/medusa'
Le fichier runs.conf contient des configuration qui sont partagées par tous les
scripts qui sont dans l'arborescence en-dessous. Ce fichier est au format CONF
(cf. ci-dessous).
Le fichier sysinfos.conf contient si nécessaire la configuration du système pour
l'hôte, pour les scripts qui doivent faire des préparations en local en fonction
du système distant. Ce fichier peut-être initialisé avec la configuration
affichée par le script usysinfos
Le fichier default contient la recette par défaut pour la configuration de
l'hôte. Il s'agit d'une suite de lignes de la forme:
script [params]
[params]
...
params correspond aux arguments de la fonction var. Chaque ligne indentée sous
le nom du script correspond à une invocation différente de var. Par exemple,
avec cette commande:
script name=value arr0+=value0 arr1-=value1
arr2 value21 value22
Le script 'script' est lancé avec la configuration de variable suivante:
name=value, rajouter value0 au tableau arr0, enlever value1 au tableau arr1, et
initialiser le tableau arr2 avec les valeur value21 et value22
Un script est composé de deux sections: CONF et SCRIPT, séparés par la ligne
'script:'. La forme d'un script est donc:
CONF
script:
SCRIPT
Les deux sections sont écrites dans le langage de script bash.
Format de la section CONF
=========================
Dans cette section, les fonctions notamment disponibles sont: desc, conf, var,
out, ref, sysinfos
desc DESC
Donner la description du script, à afficher avec 'runs --info'
conf flags...
Activer certains flags. Les valeurs possible sont:
root -- ce script requière d'être lancé avec l'utilisateur root
local -- dans le cas d'un déploiement distant, ce script doit être lancé
uniquement en local
after scriptpaths...
Requérir que dans une même session, ce script soit lancé après tous les
scripts mentionnés
after -r scriptpath [args...]
Si le script spécifié a déjà été lancé dans la session en cours, ne rien
faire. Sinon, lancer le script spécifié avec les arguments spécifiés avant
de lancer le script en cours.
after -rr scriptpath [args...]
Lancer de façon inconditionnelle le script spécifié avec les arguments
spécifiés avant de lancer le script en cours.
var name=value
Initialiser la variable name à la valeur value
var array+=value
Ajouter la valeur value au tableau array
var array-=value
Enlever la valeur value du tableau array
var array value0 value1... valueN
Initialiser le tableau array avec la valeur (value0 value1...valueN)
out name[=file]
Créer un fichier temporaire nommé file dans un espace partagé, et mettre son
chemin absolu dans la variable name.
ref [-r] name[=file]
Mettre dans la variable name le chemin absolu vers le fichier file, cherché
d'abord dans le répertoire du script, puis dans le répertoire partagé, et
enfin dans RUNSPATH. Si le fichier n'est trouvé nulle part, le chemin est
relatif au répertoire partagé.
Avec l'option -r, le fichier est requis: le script s'arrête si le fichier
référencé n'est pas trouvé.
Format de la section SCRIPT
===========================
Cette section peut contenir n'importe quelle script. Par défaut, les librairies
DEFAULTS et runs sont chargées. Mais il est possible avec urequire de charger
d'autres librairies, notamment uinst ou uinc.
Les fonctions suivantes sont disponibles: shouldrun, setdone, resetdone.
shouldrun [subsystem [value]]
Tester si le script (ou l'opération subsystem du script) doit être
lancée. Tant que la fonction 'setdone' n'est pas lancée, cette fonction
retourne vrai.
setdone [subsystem [value]]
Spécifier que le script (ou l'opération subsystem du script) a été lancée
correctement.
resetdone [subsystem]
Réinitialiser les informations concernant l'état d'installation du script ou
de l'opération subsystem du script.