Einrichtung des CVS Servers

Um immer einen konsistenten Datenbestand des Source Codes zur Verfügung zu haben setzen wir zur Datenhaltung des Source Codes einen CVS Server ein. Dieser ermöglicht es auch auf Basis des Maven Tools einen Nightly Build immer auf dem aktuellsten Stand des Source Codes zu generieren.

Das Einrichten und initialisieren des Repositories für den Concurrent Version Server (installiertes CVS RPM Paket wird vorrausgesetzt), erfolgt in unserem Fall wiefolgt:

Wir legen das Repository in /opt/cvsroot/ an deshalb folgende Aufrufe auf der Kommandozeile:

mkdir /opt/cvsroot

Zum Erzeugen des Verzeichnisses und

cvs -d /opt/cvsroot init

Zum Initialisieren des Repositories.

Um das Repository über den sogenannten pServer von aussen zugänglich zu machen muss nun noch im xInetd der CVS pServer Dienst bekannt gemacht werden. Dazu wird die Datei /etc/xinetd.conf wiefolgt angepasst:

# Configuration file for xinetd

#

# Includes /etc/xinetd.d/



defaults

{

instances = 60

log_type = SYSLOG authpriv

log_on_success = HOST PID

log_on_failure = HOST

cps = 25 30

}



service cvspserver

{

Port = 2401

socket_type = stream

protocol = tcp

wait = no

user = root

passenv =

server = /usr/bin/cvs

server_args = --allow-root=/opt/cvsroot -f pserver

env = HOME=/opt/cvsroot

log = /var/log/cvslog

}



includedir /etc/xinetd.d

Anschliessend muss der xInetd Service mit dem Befehl

/etc/init.d/xinetd restart

Neu gestartet werden.

Um einen anonymen Zugang bzw. einen Entwicklerzugang zum CVS Server zu gewähren werden verschiedene Systembenutzer angelegt.

useradd cabaweb

useradd cvsanon

Die /etc/passwd Datei enthält dann z.B. folgende Zeilen (entsprechen nicht dem Standard eines eingerichteten Benutzers, erstens wird das Verzeichnis entsprechend gelegt (/opt/cvsroot) und zweitens der Konsolen LogIn durch Nutzung der nicht existenten Shell /bin/false verwehrt.

...

cabaweb:x:501:501:CabaWeb CVS Benutzer:/opt/cvsroot:/bin/false

cvsanon:x:502:502:Anonymer CVS Benutzer:/opt/cvsroot:/bin/false

...

Die /etc/group Datei enthält dann z.B. folgende Zeilen

...

cabaweb:x:501:

cvsanon:x:502:

...

Den beiden Benutzern müssen dann noch Passworte zugeordnet werden

passwd cabaweb

passwd cvsanon


(am Besten kein einfaches Passwort, der Benutzer soll nur checkout aber nicht Login berechtigt sein)

Abschliessend noch im Repository (/opt/cvsroot/CVSROOT/) eine Datei mit Namen passwd anlegen die folgenden Inhalt hat:

anonymous::cvsanon

Nun kann man sich mit dem Befehl das Modul CabaWeb aus dem Repository holen (wenn es zuvor vom Programmierer eingecheckt wurde).

cvs -z3 -d :pserver:anonymous@ServerIP:/opt/cvsroot co cabaweb

wobei ServerIP der Name des Rechners oder dessen IP ist.