Outils pour utilisateurs

Outils du site


configurationsoussubversion

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

configurationsoussubversion [2015/10/06 20:06] (Version actuelle)
Ligne 1: Ligne 1:
 +
 += Utiliser [[:​subversion|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 [[:​Subversion| 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//​
 +
 +<​code>​
 +
 +    sudo mkdir /​home/​Subversion
 +
 +    sudo chown tom.maison /​home/​Subersion
 +
 +    svnadmin create /​home/​Subversion
 +
 +</​code>​
 +
 +
 +
 + ==== 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|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é.
 +
 +  * Configurer correctement les urls. ex pour [[:​clients:​bureau:​adrenaline|adrenaline]],​ via [[:​ss|ssh]]:​
 +
 +<​code>​
 +
 +   fsvs urls '​N:​adrenaline,​P:​0,​svn+ssh://​192.168.10.10/​home/​Svn/​config/​adrenaline'​
 +
 +</​code>​
 +
 +  * Se positionner dans le répertoire à versionner
 +
 +  * définir les répertoires et les fichiers à ignorer:
 +
 +<​code>​
 +
 +   fsvs ignore '​./​fsvs'​
 +
 +   fsvs ignore '​./​mtab'​
 +
 +   fsvs ignore '​./​mtab'​
 +
 +   fsvs ignore '​./​lvm/​cache'​
 +
 +   fsvs ignore '​./​fsvs/​**'​
 +
 +   fsvs ignore '​./​tinydns/​log/​**'​
 +
 +   fsvs ignore '​./​dnscache/​log/​**'​
 +
 +</​code>​
 +
 +(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:
 +
 +<​code>​
 +
 +   fsvs commit -m "​Initial import"​ -o commit_to=nom_urls
 +
 +</​code>​
 +
 +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. =====
 +
 +<​code>​
 +
 +    fsvs update
 +
 +</​code>​
 +
 +
 +
 + ===== Obtenir la liste des fichiers modifiés dernièrement =====
 +
 +<​code>​
 +
 +    fsvs status
 +
 +</​code>​
 +
 +
 +
 + ===== Afficher le commentaire d'une modification =====
 +
 +<​code>​
 +
 +    fsvs -v log
 +
 +</​code>​
 +
 +
 +
 + ===== Afficher la différence entre un fichier, et sa copie dans le dépôt =====
 +
 +<​code>​
 +
 +    fsvs diff -r #rev chemin
 +
 +</​code>​
 +
 +
 +
 + ===== Annuler des modifications =====
 +
 +<​code>​
 +
 +    fsvs revert -r #rev chemin
 +
 +</​code>​
 +
 +
 +
 + ==== 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|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 [[:ss|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)