Unterschiede zwischen den Revisionen 1 und 2
Revision 1 vom 2005-04-17 12:53:40
Größe: 3178
Autor: lars
Kommentar: init
Revision 2 vom 2012-06-13 21:26:23
Größe: 3182
Autor: anonym
Kommentar: converted to 1.6 markup
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
[[TableOfContents]] <<TableOfContents>>
Zeile 27: Zeile 27:
In jedem [:UML-Gastsysteme: User-Mode-System] gibt es die ''cron''-Datei ''/etc/cron.daily/cron-commit''. Dort kannst du alle Verzeichnisse angeben (eins pro Zeile), die täglich automatisch in ihr Repository hochgeladen werden sollen. Standardmäßig sind alle Zeilen auskommentiert. In jedem [[UML-Gastsysteme| User-Mode-System]] gibt es die ''cron''-Datei ''/etc/cron.daily/cron-commit''. Dort kannst du alle Verzeichnisse angeben (eins pro Zeile), die täglich automatisch in ihr Repository hochgeladen werden sollen. Standardmäßig sind alle Zeilen auskommentiert.
Zeile 39: Zeile 39:
Dafür gibt es natürlich ein Skript - es ist in jedem User-Mode-Server unter [attachment:svn-takeover.sh /scripts/svn-takeover.sh] verfügbar. Dafür gibt es natürlich ein Skript - es ist in jedem User-Mode-Server unter [[attachment:svn-takeover.sh|/scripts/svn-takeover.sh]] verfügbar.
Zeile 59: Zeile 59:
 /scripts:: Skripte für den Host und die [:UML-Gastsysteme: User-Mode-Server] - enstpricht üblicherweise dem Verzeichnis ''/scripts/'  /scripts:: Skripte für den Host und die [[UML-Gastsysteme| User-Mode-Server]] - enstpricht üblicherweise dem Verzeichnis ''/scripts/'


Struktur des Servers

Die Repositories sind - der Einfachheit halber - nur per ssh verfügbar.

Beim Erstellen eines UML auf dem Host passierte bereits automatisch folgendes:

  • ein rsa-Schlüssel für den root-Nutzer des neuen UML wurde erzeugt
  • ein Nutzer auf dem FaxeLogServer wurde angelegt (z.B.: svn-uml-webproxy)

  • der Schlüssel des UML-root-Nutzers wurde als authorized_key in den dazugehörigen Nutzer auf dem FaxeLogServer importiert

  • den Schlüssel wurde zusätzlich in den Nutzer svn-global auf dem FaxeLogServer eingefügt

Jeder root-Nutzer eines UML-Servers (und des Hosts) hat also Zugriff auf ein privates und ein öffentliches Repository.

Nutzung der Repositories

Allgemeines

Die Repositories der UML-Systeme haben folgenden Addressen:

  • svn+ssh://svn-uml-UMLNAME@logger/svn/uml-UMLNAME

  • svn+ssh://svn-global@logger/svn/global

  • svn+ssh://svn-host@logger/svn/host

Automatische Historie

In jedem User-Mode-System gibt es die cron-Datei /etc/cron.daily/cron-commit. Dort kannst du alle Verzeichnisse angeben (eins pro Zeile), die täglich automatisch in ihr Repository hochgeladen werden sollen. Standardmäßig sind alle Zeilen auskommentiert.

Übliche Kandidaten für die automatische Vergangenheitsverwaltung sind sicherlich /etc/ und /data/scripts/. Daten im globalen (im Gegensatz zum privaten) Repository sollten nicht automatisch hochgeladen werden, da sie von allen User-Mode-Servern geteilt werden.

Versionierung von Verzeichnissen

Bevor ein Verzeichnis derart verwaltet werden kann, muss du:

  • es in das Repository importieren
  • die Versionsinformationen auschecken (die .svn-Verzeichnisse)

  • die Versionsinformationen in das ursprüngliche Verzeichnis übertragen (somit werden die alten Dateirechte bewahrt)

Dafür gibt es natürlich ein Skript - es ist in jedem User-Mode-Server unter /scripts/svn-takeover.sh verfügbar.

Beispielsweise kannst du das Verzeichnis /data/etc nach /data-etc im privaten Repository des UML übertragen, indem du folgendes ausführst:

/scripts/svn-takeover.sh private /data/etc /data-etc 

Der folgende Abschnitt zeigt dir, wie du dasselbe manuell erreichen kannst.

Beispiel: manuelle Versionierung von /etc/

Das folgende Beispiel bezieht sich auf das UML interim:

cd /
svn import etc svn+ssh://svn-uml-interim@logger/svn/uml-interim/etc
svn co svn+ssh://svn-uml-interim@logger/svn/uml-interim/etc /tmp/etc
cd /tmp/etc
find -type d -name .svn | while read a; do mv "$a" "/etc/$a"; done
cd /; rm -r /tmp/etc 

Mit dieser Vorgehensweise bleiben die Datei-Rechte unverändert.

Das globale Respository

Im globalen Repository befinden sich derzeit folgende Verzeichnisse:

/scripts

Skripte für den Host und die User-Mode-Server - enstpricht üblicherweise dem Verzeichnis /scripts/'

Du kannst natürlich weitere hinzufügen. In dem Fall wäre es sicher ein Beweis löblicher Ordnungsliebe, sie hier ebenfalls zu dokumentieren :)

FaxeLogSvnNutzung (zuletzt geändert am 2012-06-13 21:26:23 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.