Outils pour utilisateurs

Outils du site


configurationsoussubversion

= Utiliser subversion pour gérer un serveur =

Introduction

L'objectif est de pouvoir:

  • savoir qui a fait quoi sur le serveur (modification de la configuration)
  • centraliser la configuration
  • faciliter la distribution de fichiers et de scripts entre plusieurs serveurs.

Installation

Cela fait l'object d'une autre documentation

Architecture

  • Une branche par serveur
  • Une branche “template” servant à distribuer les fichiers communs (script, configuration vi, …)

Questions

Peut-on mixer des fichiers issus de dépots différents ? ex /etc/vim/vimrc venant du depot “template” et /etc/fstab venant du depot “serveur5” ?

Si je modifie le /etc/vim de la branche trunk, est-ce qu'au prochain update, le /etc/vim des autres branches est mis à jour ?

Et les permissions ???

⇒ elles ne sont pas respecter. Voir [ http://fsvs.tigris.org/]

Création du dépôt principal

Celui-ci doit bien évidemment être inclus dans le système de sauvegarde

    sudo mkdir /home/Subversion

    sudo chown tom.maison /home/Subersion

    svnadmin create /home/Subversion

Architecture du dépôt

  • Chaque projet fait l'objet d'un répertoire de dépots, dans lequel se trouve une branche trunk, qui rassemblera la configuration commune.
  • Chaque /etc de chaque serveur fera l'objet d'une branche, basée sur trunk
  • Le système de fichier est manipulé avec fsvs/ / ==== Utilisation de fsvs ==== ===== Passer un répertoire sous fsvs ===== * Mettre en place un mode de communication adéquat entre la machine locale et le serveur svn. * Créer un répertoire svn dédié: <code> svn mkdir file:/home/Subversion/Configuration/NOM_MACHINE/ -m “creation du repertoire NOM_MACHINE

</code>

NOM_MACHINE est à remplacer par le nom du serveur qui va être versionné.

   fsvs urls 'N:adrenaline,P:0,svn+ssh://192.168.10.10/home/Svn/config/adrenaline'
  • Se positionner dans le répertoire à versionner
  • définir les répertoires et les fichiers à ignorer:
   fsvs ignore './fsvs'

   fsvs ignore './mtab'

   fsvs ignore './mtab'

   fsvs ignore './lvm/cache'

   fsvs ignore './fsvs/**'

   fsvs ignore './tinydns/log/**'

   fsvs ignore './dnscache/log/**'

(notez le chemin relatif). les double * * permettent d'inclure le contenu du répertoire. attention à ce que les * ne soient pas interprétées par le shell !

  • exécuter la commande suivante:
   fsvs commit -m "Initial import" -o commit_to=nom_urls

le nom_urls est à utiliser dans le cas d'url / branches multiples et doit correspondre au ''nom' de l'url ((adrenaline dans notre exemple ci-dessus)

Déversionner un fichier

Cette opération se fait en 3 étapes:

1. fsvs unversion

2. fsvs ignore

3. fsvs commit -m “clean up”

Mettre à jour l'arborescence courante avec celle du dépôt.

    fsvs update

Obtenir la liste des fichiers modifiés dernièrement

    fsvs status

Afficher le commentaire d'une modification

    fsvs -v log

Afficher la différence entre un fichier, et sa copie dans le dépôt

    fsvs diff -r #rev chemin

Annuler des modifications

    fsvs revert -r #rev chemin

Troubleshooting

En cas d'erreurs bizarres, lors de la mise en place, penser à supprimer le contenu des répertoires /etc/fsvs et /var/spool/fsvs.

Le premier contient la configuration, et notamment les urls. L'autre contient l'historique des versions.

Un fsvs sync-repos peut aussi aider, dans le cas de message “Transaction out of date”

Installation de mod_svn

Mod_svn permet un accès webdav au serveur (?), et une interface web (sommaire). Il suffit d'installer le paquet, et, en s'inspirant du fichier https://wiki.[[:commercial:opendoor|opendoor]].fr/svn/config/trunk/apache2/mods-available/dav_svn.conf, de le configurer.

Cela permet notamment, via un wiki, d'avoir un lien vers la dernière version d'un fichier de configuration donné, et de ne plus se retrouver avec des fichiers attachés obsolètes

Problèmes

En mode dépôt multi utilisateurs, on a un soucis de fichiers de root visible par tout utilisateur ayant accès à svn.

Cas d'utilisation

changement d'url

de ssh vers http…

Aucun problème, ils suffit juste de bien faire la correspondance d'url. L'historique n'est pas perdu.

L'url se modifie en faisant un “echo NOUVELLE URL” | fsvs url load dans le répertoire /etc

Attention: il est préférable d'avoir une arborescence à jour par rapport au dépôt ( faire un commit avant le changement d'url) sous peine de rencontrer des erreurs bizarres. Ces erreurs peuvent se corriger en faisant d'abord un fsvs up avant le commit.

Dans le cas de workine, l'url est https://maison.[[:commercial:opendoor|opendoor]].fr/subversion/config/$HOSTNAME.

Le compte est conf / conf2010.

À chaque connexion, fsvs nous signale un problème de certificat, et nous demande nos informations d'authentification. Il est possible d'enregistrer ces informations en initiant une connexion svn (par exemple un svn list https://maison.[[:commercial:opendoor|opendoor]].fr/subversion/config) Aucun problème, ils suffit juste de bien faire la correspondance d'url. L'historique n'est pas perdue

# vim: set filetype=dokuwiki:

configurationsoussubversion.txt · Dernière modification: 2015/10/06 20:06 (modification externe)