Si c'est une équipe d'administrateurs qui est impliquée, un système de management de code source et de contrôle de révision comme CVS peut simplifier la coordination : plusieurs personnes peuvent travailler simultanément sur les fichiers de configuration, tandis que ce système aide à éviter les conflits (et s'il s'en produit, il aide à les résoudre). Un autre avantage se trouve dans la gestion des branches : pendant que l'administrateur prépare une nouvelle configuration et réalise les essais en utilisant une configuration de test, les autres clients ne subissent aucune perturbation, car ils utilisent une autre branche de la configuration.
Vous devez d'abord initialiser un dépôt CVS et dans celui-ci, un module pour stocker les fichiers de configuration de FAI. Dans cet exemple, un serveur CVS « pserver » sera utilisé pour les accès en lecture seule aux fichiers de configuration par les clients, tandis que ssh est utilisé pour les accès des développeurs (rw)[16].
Les variables correspondantes à CVS dans /etc/fai/fai.conf et /etc/fai/make-fai-nfsroot.conf sont :
Cette variable ne doit pas être positionnée si vous voulez utiliser CVS.
contient le « cvsroot » où est stockée la configuration.
FAI_CVSROOT=":pserver:client@cvs.local.net:/var/lib/cvs"
contient le module où est stockée la configuration dans le « cvsroot ».
FAI_CVSMODULE="config"
contient le « tag » de la branche CVS qui sera extraite par le client[17].
FAI_CVSTAG="STABLE"
Si vous utilisez un serveur « pserver » pour stocker les fichiers de configuration, le fichier /root/.cvspass doit exister et être valide dans la « nfsroot ». CVS utilise ce fichier pour obtenir le mot de passe pour le « pserver ». Vous pouvez le créer très facilement si vous exécutez
cvs -d$FAI_CVSROOT loginet que vous copiez ensuite la ligne générée de votre ~/.cvspass dans /root/.cvspass sur la « nfsroot ».
[16] CVS est très flexible et peut être utilisé avec plusieurs méthodes d'accès, c'est pourquoi je vous recommande de lire plus de documentation sur le sujet pour trouver la solution optimale dans votre environnement.
[17] Ceci n'est pas obligatoire : si la variable n'est pas définie, HEAD sera utilisé, ce qui correspond à la version la plus récente de la configuration.