wiki:AdminSvn
close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 5 (modified by Rüdiger Kupper, 15 years ago) ( diff )

ssh+svn

Subversion-Repository

--work in progress--

Repository

Physikalischer Speicherort

/srv/svn

Orientiert am ​File System Hierarchy Standard (FHS), dem ​Debian folgt.

Server

Subversion erlaubt verschiedene Server-Szenarien. Für uns kommen zwei davon in Frage:

  1. svn über ssh-Tunnel
  2. svn über Apache

Beide Varianten wären sinnvoll, weil

  1. alle potentiellen Nutzer einen vollständigen Systemaccount besitzen, sich also ssh-Schlüssel anlegen und sich dann über ssh einloogen können.
  2. der Apache V2 bereits gut läuft, mitsamt LDAP-Authentifizierung, und nur konfiguriert werden muss.

Beide Methoden haben Vor- und Natchteile, besonders hervorzuheben:

  1. svn über ssh-Tunnel hat potentiell Probleme mit den Nutzerrechten beim Schreiben auf das svn-Repository. Die lassen sich aber durch ein gewissenhaftes Rechtedesign lösen.
  2. Apache als Server ist äußerst flexibel (wobei wir die Flexibilität auf absehbare Zeit nicht benötigen), erzeugt bei den Zugriffen aber erheblich mehr Systemlast (=langsamer)

Das subversion-Manual ist eine hervorragende Dokumentation zu allen diesen Fragen.

Wir müssen zunächst eine Entscheifung treffen, welches Szenario wir anwenden wollen. Ehrlichgesagt, bei unserem zu erwartendem Traffic (zwei aktive User und eine handvoll Dateien) ist der Systemaufwand vernachlässigbar.

Ich erprobe zur Zeit beide Szenarien und werde mich kurzfristig (morgen) für eins entscheiden, dass wir dann erstmal verwenden.

Einrichten eines neuen Repositories

svnadmin create /srv/svn/<repos>

svn über ssh-Tunnel

Dieser Abschnitt beschreibt die notwendigen Einrichtunbgsschritte für Zugriff über das ssh+svn-Protokoll.

Bei dieser Zugriffsmethode greift jeder Nutzer unter seinem eigenen Namen auf das Repository zu. (Andere Szenarien, wie ein geteilter Account für mehrere Nutzer, siehe Svn-Manual.)

Um Probleme mit Schreibrechten zu lösen, sollten alle Nutzer, die auf das Repository zugreifen, in einer gemeinsamen Unix-Gruppe sein. Bei uns habe ich dazu die Gruppe svn eingerichtet.

addgroup --system svn

Für jeden Nutzer ausführen:

adduser <username> svn

Das gesamte Repository muss der Gruppe svn gehören:

chgrp svn /srv/svn/<repos>

Alle Verzeichnisse im Repository sollten das setgid-Bit gesetzt haben:

find /srv/svn/<repos> -type d -exec chmod g+s \{} +

Nutzerabhängige Konfiguration

  • Checkout:
    svn checkout ssh+svn://paedml.kg-fds.de/srv/svn/<repos>
    
  • Die Nutzer müssen "vernünftige" umasks haben (Schreib- und Lesezugriffe für Gruppe nicht verbieten!)
  • Für die Nutzer wird der Zugriff besonders angenehm, wenn sie ihren ssh-Schlüssel hinterlegen, so dass sie sich über den ssh-agent einloggen können (=Passworteingabe nur einmal nötig, dann jeder weitere Zugriff ohne Passwort).

svn über Apache

(details hierhier)

Note: See TracWiki for help on using the wiki.