« Installation et mise en place d'un dépôt subversion » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 : Ligne 4 :


Ce howto va vous montrer comment mettre en place un dépot subversion.
Ce howto va vous montrer comment mettre en place un dépot subversion.
Le domaine utilisé est <code>svn.pfoo.csnu.org</code> qui est un alias pour <code>core.csnu.org</code>.
Le domaine utilisé est <code>svn.pfoo.domain.tld</code> qui est un alias pour <code>core.domain.tld</code>.
<code>core.csnu.org</code> est le domaine identifiant le serveur sur lequel se trouvera le dépôt subversion. Il possède l'adresse ipv4 <code>213.186.47.110</code> et l'adresse ipv6 <code>2001:41d0:1:d6e::110</code>.
<code>core.domain.tld</code> est le domaine identifiant le serveur sur lequel se trouvera le dépôt subversion. Il possède l'adresse ipv4 <code>213.186.47.110</code> et l'adresse ipv6 <code>2001:41d0:1:d6e::110</code>.


Ce howto est construit de manière à respecter mon howto sur apache2. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027
Ce howto est construit de manière à respecter mon howto sur apache2. Les changements de permissions effectués dans ce howto supposent que vous êtes en umask 0027
Ligne 14 : Ligne 14 :
<pre>aptitude install subversion subversion-tools</pre>
<pre>aptitude install subversion subversion-tools</pre>


On peut maintenant créer le dépôt subversion. Dans mon cas, je vais le créer dans <code>/srv/http/csnu.org/pfoo.csnu.org/svn/</code>
On peut maintenant créer le dépôt subversion. Dans mon cas, je vais le créer dans <code>/srv/http/domain.tld/pfoo.domain.tld/svn/</code>
<pre>svnadmin create /srv/http/csnu.org/pfoo.csnu.org/svn/</pre>
<pre>svnadmin create /srv/http/domain.tld/pfoo.domain.tld/svn/</pre>


Le dépôt devra être accessible par apache en lecture ainsi qu'en écriture :
Le dépôt devra être accessible par apache en lecture ainsi qu'en écriture :
<pre>
<pre>
chmod -R g+w /srv/http/csnu.org/pfoo.csnu.org/svn/db/
chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/svn/db/
mkdir -p /srv/http/csnu.org/pfoo.csnu.org/svn/dav/activities.d
mkdir -p /srv/http/domain.tld/pfoo.domain.tld/svn/dav/activities.d
chmod -R g+w /srv/http/csnu.org/pfoo.csnu.org/svn/dav/
chmod -R g+w /srv/http/domain.tld/pfoo.domain.tld/svn/dav/
chown -R root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn/
chown -R root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn/
</pre>
</pre>


Gardez à l'esprit que apache doit pouvoir exécuter (permission +x) tous les dossiers en amont de <code>/srv/http/csnu.org/pfoo.csnu.org/svn/</code>.
Gardez à l'esprit que apache doit pouvoir exécuter (permission +x) tous les dossiers en amont de <code>/srv/http/domain.tld/pfoo.domain.tld/svn/</code>.


=Ajout de la redirection dans la zone dns de bind=
=Ajout de la redirection dans la zone dns de bind=


Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/csnu.org.hosts</code> dans mon cas) et ajoutez les lignes suivantes :
Éditez le fichier de la zone dns de votre domaine (<code>/srv/bind/domain.tld.hosts</code> dans mon cas) et ajoutez les lignes suivantes :
<pre>
<pre>
core.csnu.org.  IN      A      213.186.47.110
srv.domain.tld.  IN      A      213.186.47.110
core.csnu.org.  IN      AAAA    2001:41d0:1:d6e::110
srv.domain.tld.  IN      AAAA    2001:41d0:1:d6e::110
svn.pfoo        IN      CNAME  core.csnu.org.
svn.pfoo        IN      CNAME  srv.domain.tld.
</pre>
</pre>


Ligne 63 : Ligne 63 :
==Configuration d'une vhost==
==Configuration d'une vhost==


Éditez le fichier <code>/etc/apache2/vhosts/svn.pfoo.csnu.org.conf</code> et ajoutez y les lignes suivantes:
Éditez le fichier <code>/etc/apache2/vhosts/svn.pfoo.domain.tld.conf</code> et ajoutez y les lignes suivantes:
<pre><nowiki>
<pre><nowiki>
<VirtualHost 213.186.47.110:80>
<VirtualHost 213.186.47.110:80>
         ServerName svn.pfoo.csnu.org
         ServerName svn.pfoo.domain.tld
         Include sites/svn.pfoo.csnu.org.conf
         Include sites/svn.pfoo.domain.tld.conf
</VirtualHost>
</VirtualHost>
<VirtualHost [2001:41d0:1:d6e::110]:80>
<VirtualHost [2001:41d0:1:d6e::110]:80>
         ServerName svn.pfoo.csnu.org
         ServerName svn.pfoo.domain.tld
         Include sites/svn.pfoo.csnu.org.conf
         Include sites/svn.pfoo.domain.tld.conf
</VirtualHost>
</VirtualHost>
</nowiki></pre>
</nowiki></pre>
Ligne 78 : Ligne 78 :


On peut maintenant créer le fichier de configuration du virtualhost.
On peut maintenant créer le fichier de configuration du virtualhost.
Ouvrez le fichier <code>/etc/apache2/sites/svn.pfoo.csnu.org.conf</code> avez votre éditeur de texte et ajoutez les lignes suivantes:
Ouvrez le fichier <code>/etc/apache2/sites/svn.pfoo.domain.tld.conf</code> avez votre éditeur de texte et ajoutez les lignes suivantes:
<pre>
<pre>
#Cette ligne est a décommenter si vous n'arrivez pas à utiliser les commandes copy et move de subversion en vous connectant en https:
#Cette ligne est a décommenter si vous n'arrivez pas à utiliser les commandes copy et move de subversion en vous connectant en https:
Ligne 86 : Ligne 86 :
       DAV svn
       DAV svn
       # chemin complet vers le dépôt SVN
       # chemin complet vers le dépôt SVN
       SVNPath /srv/http/csnu.org/pfoo.csnu.org/svn/
       SVNPath /srv/http/domain.tld/pfoo.domain.tld/svn/
       #On sécurise le tout par mot de passe.
       #On sécurise le tout par mot de passe.
       # htpasswd permettra de créer facilement le fichier
       # htpasswd permettra de créer facilement le fichier
       AuthType Basic
       AuthType Basic
       AuthName "pfoo's SVN"
       AuthName "pfoo's SVN"
       AuthUserFile /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd
       AuthUserFile /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd
       Require valid-user
       Require valid-user


       # fichier de configuration des permissions du dépot
       # fichier de configuration des permissions du dépot
       AuthzSVNAccessFile /srv/http/csnu.org/pfoo.csnu.org/svn.perm
       AuthzSVNAccessFile /srv/http/domain.tld/pfoo.domain.tld/svn.perm
   </location>
   </location>
</nowiki></pre>
</nowiki></pre>
Ligne 103 : Ligne 103 :
Nous allons créer un utilisateur pfoo ayant tous les droits sur le dépôt, et un utilisateur jonass n'ayant que des droits limités. Comme d'habitude, on préfèrera crypter les mots-de-passes en SHA (option -s)
Nous allons créer un utilisateur pfoo ayant tous les droits sur le dépôt, et un utilisateur jonass n'ayant que des droits limités. Comme d'habitude, on préfèrera crypter les mots-de-passes en SHA (option -s)
<pre>
<pre>
htpasswd -cs /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd pfoo
htpasswd -cs /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd pfoo
htpasswd -s /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd jonass
htpasswd -s /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd jonass
</pre>
</pre>


On donne les bonnes permissions au fichier contenant les utilisateurs:
On donne les bonnes permissions au fichier contenant les utilisateurs:
<pre>chown root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn.htpasswd</pre>
<pre>chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn.htpasswd</pre>


On peut maintenant créer le fichier contenant les accès des deux utilisateurs. Ouvrez le fichier <code>/srv/http/csnu.org/pfoo.csnu.org/svn.perm</code> et entrez y les lignes suivantes:
On peut maintenant créer le fichier contenant les accès des deux utilisateurs. Ouvrez le fichier <code>/srv/http/domain.tld/pfoo.domain.tld/svn.perm</code> et entrez y les lignes suivantes:
<pre>
<pre>
[groups]
[groups]
Ligne 125 : Ligne 125 :


Comme d'habitude, changer l'appartenance du fichier:
Comme d'habitude, changer l'appartenance du fichier:
<pre>chown root:www-data /srv/http/csnu.org/pfoo.csnu.org/svn.perm</pre>
<pre>chown root:www-data /srv/http/domain.tld/pfoo.domain.tld/svn.perm</pre>


=Le moment de vérité=
=Le moment de vérité=
Ligne 144 : Ligne 144 :


Pour réaliser votre backup avec <code>svn-backup-dumps</code> :
Pour réaliser votre backup avec <code>svn-backup-dumps</code> :
<pre>svn-backup-dumps /srv/http/csnu.org/pfoo.csnu.org/svn/ /root/backup/</pre>
<pre>svn-backup-dumps /srv/http/domain.tld/pfoo.domain.tld/svn/ /root/backup/</pre>


Pour restaurer un backup, il faut utiliser <code>svnadmin</code> :
Pour restaurer un backup, il faut utiliser <code>svnadmin</code> :
<pre>svnadmin load /srv/http/csnu.org/pfoo.csnu.org/svn/ < /root/backup/sauvegarde.svndmp</pre>
<pre>svnadmin load /srv/http/domain.tld/pfoo.domain.tld/svn/ < /root/backup/sauvegarde.svndmp</pre>


=Supprimer les anciennes révisions=
=Supprimer les anciennes révisions=
Ligne 155 : Ligne 155 :
Dans mon cas, je ne souhaite conserver que les 10 dernières révisions et je suis à la révision 453 :
Dans mon cas, je ne souhaite conserver que les 10 dernières révisions et je suis à la révision 453 :
<pre>
<pre>
svnadmin dump /srv/http/csnu.org/pfoo.csnu.org/svn/ -r 443:head > repository-443-head.dump
svnadmin dump /srv/http/domain.tld/pfoo.domain.tld/svn/ -r 443:head > repository-443-head.dump
rm -rf /srv/http/csnu.org/pfoo.csnu.org/svn/
rm -rf /srv/http/domain.tld/pfoo.domain.tld/svn/
svnadmin create /srv/http/csnu.org/pfoo.csnu.org/svn/
svnadmin create /srv/http/domain.tld/pfoo.domain.tld/svn/
svnadmin load /srv/http/csnu.org/pfoo.csnu.org/svn/ < repository-443-head.dump
svnadmin load /srv/http/domain.tld/pfoo.domain.tld/svn/ < repository-443-head.dump
------ Nouvelle révision 11 propagée (commit), basée sur révision 453
------ Nouvelle révision 11 propagée (commit), basée sur révision 453
</pre>
</pre>
4 203

modifications

Menu de navigation