\documentclass[a4paper, 10pt]{article} \usepackage[left=2cm, right=2cm]{geometry} \usepackage[utf8x]{inputenc} \usepackage[ngerman]{babel} \newcommand{\file}[1]{\texttt{#1}} \title{CVS Installation und Konfiguration} \author{Markus Spiekermann, Simone Jandt} \date{\today} \begin{document} \maketitle \section{CVS-Konfiguration auf Server f\"ur Zugriff von au\ss{}erhalb} Damit CVS-Clients von entfernten Rechnern aus eine Verbindung herstellen k\"onnen ist \"uber den Benutzer \file{root} auf Zeppelin der Internet-D\"amon \file{xinet} f\"ur CVS konfiguriert worden. Wenn dieser Dienst nicht l\"auft, kann CVS nur von Benutzern, die sich auf dem Server einloggen k\"onnen benutzt werden. Die \file{xinet}-Konfiguration ist in der Datei \file{/etc/xinet.d/cvs} definiert. \begin{verbatim} service cvspserver { socket_type = stream protocol = tcp wait = no user = root server = /usr/bin/cvs server_args = -f --allow-root=/home/cvsroot pserver } \end{verbatim} \section{CVS-Server des Lehrgebiets} CVS-Server laufen im Moment auf Zeppelin (Standard) und im wesentlichen f\"ur das Fachpraktikum genutzt auf Agnesi. Die Verwaltung ist im wesentlichen analog. Allerdings heisst der Linuxbenutzer hier nicht \file{spieker} sondern \file{cvsadmin}. Die Kennworte der beiden User sind bis auf die Gro\ss{}- und Kleinschreibung identisch. \section{Wichtige Verzeichnisse f\"ur CVS-Verwaltung auf Zeppelin} Auf Zeppelin gibt es das Verzeichnis \file{/cvsroot} unterhalb dieses Verzeichnisses befinden sich die verschiedenen Repositories im CVS-System, wie z.B. \file{secondo} und \file{secondo-documents}. Au\ss{}erdem befindet sich dort das Unterverzeichnis \file{CVSROOT}, dass die eigentlichen Verwaltungsdateien der CVS-Installation enth\"alt. Die Skripte die \"uber die Eintr\"age in den Verwaltungsdateien bzw. die Cron Jobs des Benutzers \file{spieker} aufgerufen werden befinden sich im Verzeichnis \file{/home/spieker/cvs-snapshot/CM-Scripts}. Die Schreibberechtigung f\"ur die Verwaltungs- und Skript-Dateien l\"auft zur Zeit \"uber den Linuxbenutzer \file{spieker}. \section{CVS-Userverwaltung} Im Verzeichnis \file{CVSROOT} gibt es folgende f\"ur die Verwaltung besonders wichtige Dateien: \begin{itemize} \item \file{passwd} : Zuordnung CVS-Benutzernamen, Passwort, Linux-User \item \file{user} : Zuordnung CVS-Benutzername, E-Mailadresse \item \file{readers} : CVS-User die nur lesen d\"urfen \end{itemize} Jeder CVS-Benutzer wird einem Betriebsystembenutzer zugeordnet. In der Datei \file{readers} k\"onnen Benutzer festgelegt werden, denen nur lesender Zugriff auf die Repositories gestattet werden soll. Dass Passwort f\"ur einen neuen Benutzer wird in der Passwortdatei in verschl\"usselter Form hinterlegt. Die Verschl\"usselung kann durch Aufruf des Perl-Scripts \file{CM-Scripts/cvspass.pl } erfolgen. CVS-Benutzer k\"onnen nicht selbst\"andig Ihr Passwort \"andern. Falls Sie es vergessen muss ein neues definiert werden. Schreibberechtigungen auf der Ebene einzelner Dateien oder Verzeichnisse, insbesondere f\"ur Abschlussarbeiten von Studenten, werden durch die Berechtigungskonzepte des Betriebssystems realisiert. Uneingeschr\"ankt schreibberechtigte Benutzer sind dem Linux-Benutzer \file{spieker}, der den Gruppen \file{crew} und \file{cvs-crew} angeh\"ort zuzuordnen. F\"ur Studenten stehen die Linux-Benutzer \file{diplomand1} bis \file{diplomand20} zur Verf\"ugung. F\"ur $1 \leq X \leq 20$ sind die Benutzer jeweils der Gruppe \file{diplomandX} und \file{cvs-dipl} zugeordnet. Durch eine geeignete Zuordnung der CVS-Benutzer zu Linux-Benutzern sowie der Zuordnung von Owner- und Gruppenrechten auf Dateien und Verzeichnisse k\"onnen so beliebige Zugriffsbeschr\"ankungen auf Betriebsystemebene realisiert werden. Bei Abschlussarbeiten wird im Verzeichnis des Repositories \file{secondo} f\"ur das vom Studenten zu schreibende Algebraverzeichnis die Gruppenberechtigung auf \file{diplomandX} mittels \file{chgrp} ge\"andert. Ist die Abschlussarbeit beendet wird die Gruppenzuordnung wieder auf \file{cvs-crew} ge\"andert. F\"ur CVS-User ist zus\"atzlich auf Bassi in \file{/etc/mail/secondo-users.txt} ein Mailverteiler eingerichtet \"uber den alle \textsc{Secondo} CVS-User mit \file{secondo-users@bassi.fernuni-hagen.de} angemailt werden k\"onnen. Studenten mit Abschlussarbeit sind dort jeweils ein- bzw. auszutragen. Im Verzeichnis \file{secondo/CM-Scripts/} findet sich die Datei \file{studentuserlist.tex}, die ein \"Ubersicht \"uber die aktuelle und vergangene Zuordnung von Studenten zu diplomandX Usern und den jeweiligen Schreibverzeichnissen enth\"alt. F\"ur den Versand der Benutzerinformationen an Studenten gibt es im selben Verzeichnis eine Musterdatei \file{cvspass.odg}, die mit den jeweiligen Benutzerdaten anzupassen und dann jeweils in eine PDF zu verwandeln ist. Die PDF kann dann zusammen mit einer CVS-Kurzanleitung als Anhang einer E-Mail an den Studenten versandt werden. \section{Cron Jobs f\"ur CVS} Der Linux-Benutzer \file{spieker} hat einige cron-jobs definiert, die t\"aglich durchgef\"uhrt werden. Dazu werden einige Scripte die unter \file{/home/spieker/cvs-snapshot/CM-Scripts} liegen ausgef\"uhrt. Diese Scripte werden ebenfalls von CVS verwaltet. Die Cron Jobs versenden E-Mails mit Ihren Ergebnissen an spieker@zeppelin. Der CVS-Verwalter kann diese erhalten in dem er seine E-Mail-Adresse in \file{/home/spieker/.forward} eintr\"agt. Die aktuellen cron-jobs k\"onnen unter dem Benutzer \file{spieker} mit \file{crontab -l} abgefragt und mit \file{crontab -e} editiert werden. Erl\"auterung der Bedeutung der Eintr\"age zur Ausf\"uhrungszeit finden sich \"uber \file{man crontab} auf jedem Linuxsystem. Zur Zeit findet 2mal t\"aglich eine \"Uberpr\"ufung des eingecheckten Secondo-Systems auf Funktionsf\"ahigkeit statt. Ausgecheckt wird jeweils der Stand um 4.30 Uhr bzw. 12 Uhr. Gepr\"uft wird die aktuelle Version dann mit dem Skript \file{cvs-make.sh} im Verzeichns \file{/home/spieker/cvs-snapshot/CM-Scripts/cvs-make.sh}. Dieses Skript \"Ubersetzt den Quellcode sofern seit dem letzten Lauf des Skriptes \"Anderungen ins CVS \"ubertragen wurden. Und kontrolliert die Lauff\"ahigkeit des aktuellen Systems \"uber die in Secondo hinterlegten Selbsttests und Testfalldateien. Aufgetretene Fehler werden protokolliert und den Personen, die zuletzt \"Anderungen am Quellcode gemacht haben per E-mail zugesendet zus\"atzlich werden die Protokolle unter \file{/var/tmp/cvs-make} archiviert. Andere Cron Jobs dienen der kontrolle der korrekten Zugriffsberechtigungen f\"ur neu eingecheckte Dateien. Hierzu gibt es noch zus\"atzliche Cron Jobs des Benutzers \file{root}, die dem Benutzer \file{spieker} entsprechende Dateirechte zuweisen. \section{Commit-Check} Die \"Uberpr\"ufung der Dateien beim \file{cvs commit} wird \"uber das Skript \file{citest.sh} im Verzeichnis \file{/home/spieker/} \file{cvs-snapshot/CM-Scripts} gesteuert. In dieser Datei ist, wenn Dateien gr\"o\ss{}er als 700 KB eingecheckt werden sollen, die Zeile (95) mit der Gr\"o\ss{}en\"uberpr\"ufung tempor\"ar entsprechend zu \"andern. \section{Sicherungen} Sicherungen werden \"uber den Backup-Service des ZMI durchgef\"uhrt. Dazu wurde ein Tivoli Backup-Client auf dem Server installiert, der das Verzeichnis \file{/cvsroot} sichert. Ansprechpartner f\"ur Backups: Thomas Behr \end{document}