Taille: 3144
Commentaire:
|
Taille: 3219
Commentaire: CVS unifié sur les serveurs
|
Texte supprimé. | Texte ajouté. |
Ligne 25: | Ligne 25: |
cvs import etc 'Crans' 'Nectaris' # Il est possible de mettre ce que l'on veut à la place de Crans et Nectaris | cvs import nectaris_etc 'Crans' 'Nectaris' # Il est possible de mettre ce que l'on veut à la place de Crans et Nectaris |
Ligne 28: | Ligne 28: |
cvs checkout etc # Un répertoire CVS sera alors créé dans /etc}}} | cvs checkout nectaris_etc # Un répertoire CVS sera alors créé dans /nectaris_etc mv nectaris_etc/CVS etc rm -rf nectaris_etc }}} |
Plusieurs personnes travaillant sur les serveurs, il est pratique de savoir qui modifie quoi et pourquoi. De plus garder un historique des configs est très utile.
Ces tâches seront gérées par CVS.
Le site web du Crans est également géré pas CVS. Plus de détails sur /CvsWeb.
Point de vue utilisateur
Rajouter un sous-répertoire dans l'archive (seulement le répertoire, pas son contenu) : cvs add <rep>
Ajouter un fichier dans l'archive (le fichier doit se trouver dans un répertoire déja ajouté à l'archive) : cvs add <fichier> puis "commiter" le fichier.
"Commiter" un fichier, c'est à dire enregister ses modifications cvs commit <fichier>
Supprimer un fichier de l'archive : supprimer le fichier puis cvs remove <fichier> et enfin "commiter".
Mise en place
Base
Il faut tout d'abord un repository (lieu de stoquage des fichiers) sur la machine (exemple dans /var/cvsroot) {{{mkdir /var/cvsroot cvs -d /var/cvsroot init}}}
Pour simplifier il est ensuite conseillé d'utiliser la variable d'environnement CVSROOT=/var/cvsroot
Pour sauvegarder les fichiers interessants d'un répertoire (et sous répertoires) (/etc par exemple) : {{{mkdir /tmp/etc cd /tmp/etc cvs import nectaris_etc 'Crans' 'Nectaris' # Il est possible de mettre ce que l'on veut à la place de Crans et Nectaris cd / rm -rf /tmp/etc cvs checkout nectaris_etc # Un répertoire CVS sera alors créé dans /nectaris_etc mv nectaris_etc/CVS etc rm -rf nectaris_etc }}}
C'est prêt, il n'y a plus qu'à ajouter et commiter les fichiers ou répertoires de son choix dans /etc
Avertissement pour les commits : cvs-syncmail
A chaque commit un mail sera envoyé à (aux) adresses de son choix.
Il faut récupérer le script syncmail (http://sourceforge.net/projects/cvs-syncmail/), il est diponible en paquet debian. Il est necssaire d'avoir python sur la machine.
Une version patchée (attachment:syncmail_linux attachment:syncmail_openBSD) est utilisée sur nos serveurs de manière à indiquer le véritable auteur des commit dans le from du mail au lieu de root.
Il faut maintenant configurer CVS : {{{ cd /tmp cvs checkout CVSROOT}}} Il faut alors modifier le fichier /tmp/CVSROOT/loginfo et ajouter la ligne (lancer syncmail sans arguments pour voir les différentes options disponibles)
ALL /usr/scripts/syncmail -f <machin.crans.org> -m <serveur de mail> -qu "%s %V %v" <addresse@mail.org>
Editer si necessaire le fichier /tmp/CVSROOT/config de manière à ce qu'il contienne
UseNewInfoFmtStrings=yes
Cette opération permet d'éviter des déprecation warnings.
Enfin, il faut commiter ces 2 fichiers modifiés : {{{sudo cvs commit /tmp/CVSROOT/loginfo sudo cvs commit /tmp/CVSROOT/config }}}
Vérification si les fichiers sont synchros
Il suffi de lancer le script attachment:mailWarn_dirtyEtc.sh ou attachment:mailWarn_dirtyEtc.py (ce dernier permet de choisir son serveur de mail)
Il est astucieux de le croner tous les jours.
Lien utile
http://www.lifl.fr/~boulet/formation/syst-dist/exposes2003-2004/cvs/index.html (en français)