Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:gitolite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

software:gitolite [2012/10/09 17:38]
mhoffmann [Vorbereitungen]
software:gitolite [2012/10/11 10:23]
Zeile 1: Zeile 1:
-====== Installation Gitolite Versionsverwaltungsserver ====== 
-Gitolite ist ein Versionsverwaltungsserver der auf GIT basiert und eine denkbar einfache Konfiguration besitzt. 
-Da die komplette Konfiguration über ein eigenes GIT-Repository läuft benötigt man kein Webinterface und hat sogar eine Versionsverwaltete Konfiguration. 
- 
-===== Vorbereitungen ===== 
-//Diese Anleitung bezieht sich auf Ubuntu 12.04 LTS. Ubuntu 10.04 hat Gitolite noch nicht in den Paketquellen! 
-// 
-Für die Installation von Gitolite braucht man folgendes: 
-  - Server mit konfiguriertem SSH-Zugang (am besten über den Standardport und mit PublicKey-Authentifizierung). 
-  - [[software:​git|GIT-Client]] auf dem lokalen Rechner 
-    - Unter Linux einfach über den Paketmanager installieren 
-    - Bei MacOS über Portierungsprogramme wie "​Homebrew"​ oder "​Macports"​ installieren 
-    - Unter Windows am besten [[http://​msysgit.github.com/​|GIT mit GitBash]] installieren. 
-  - SSH PublicKey des eigenen Rechners im richtigen Format (Mit Putty-PublicKeys funktioniert das nicht) 
-  - Ein bisschen Ahnung wie GIT funktioniert. 
- 
-Zunächst solltet ihr den PublicKey auf den Server ziehen und dort irgendwo im Homeverzeichnis ablegen, ein Eintrag in die Datei **/​home/​[USER]/​.ssh/​authorized_keys** reicht nicht! 
-Wie ihr SSH-Keys erstellt hängt vom Client ab, meistens jedoch kann man die SSH-Keys über die Shell (Bei Linux und Mac) mit dem Befehl ''​ssh-keygen''​ erstellen. 
-===== Gitolite Installation ===== 
-Gitolite kann einfach mit dem Befehl ​ 
-<​code>​ 
-sudo apt-get install gitolite 
-</​code>​ 
-installiert werden. 
-Dabei werden noch einige Pakte benötigt, wie bspw. git-core etc., welche aber automatisch mitinstalliert werden. 
- 
-===== Grundkonfiguration ===== 
-Die Konfiguration von Gitolite ist unter Ubuntu ebenfalls recht einfach. Bei der Installation wird Gitolite einige Warnmeldungen anzeigen, dass noch kein Admin-key eingetragen ist, das soll nun behoben werden. 
-Eingerichtet wird Gitolite über den Paketmanager mit 
-<​code>​ 
-sudo dpkg-reconfigure gitolite 
-</​code>​ 
-Dann werdet ihr einige Dinge gefragt: 
-  - An welchem Ort die Gitrepositories liegen sollen. Hierbei solltet ihr einen ordentlichen Pfad wählen, wie bspw **/​srv/​gitolite**. Fall noch nicht vorhanden wird der Paketmanager diesen Pfad erstellen. 
-  - Wie soll der Nutzer heißen, mit dem auf die Repositories zugegriffen werden soll. Nehmt hier bitte keinen User, der produktiv genutzt wird, also kein Admin- oder Nutzerkonto. Am besten eignet sich **gitolite**,​ da dieser Nutzername auch bei jedem Clone eines Repositories genutzt werden muss 
-  - Den Speicherort des SSH-PublicKeys den man vorher hochgeladen hat. Bitte auf entsprechende Leserechte achten! 
- 
-Nach diesem drei Punkten ist Gitolite in der Regeln konfiguriert und man kann nun Anfangen die Repository-konfiguration zu beginnen. 
- 
-===== Verwaltung von Nutzern und Repositories ===== 
-==== Checkout admin-repo ==== 
- 
-Wie bereits erwähnt erfolgt die produktive Konfiguration über ein eigenes Repository. 
-Dieses müsst ihr euch auf den Rechner klonen dessen SSH-Key ihr als admin-key eingetragen habt. 
-Der Clone funktioniert über git mit dem Befehl: 
-<​code>​ 
-git clone [Gitoliteuser]@adresse.des.servers:​gitlolite-admin.git 
-</​code>​ 
- 
-Die Authentifizierung erfolgt über den SSH-Schlüssel,​ das Repository wird geklont. 
-Wird auf dem Server SSH nicht auf dem Standardport genutzt so muss der Clone-Befehl wie folgt lauten: 
-<​code>​ 
-git clone ssh://​[Gitoliteuser]@adresse.des.servers:​[SSHPort]/​gitolite-admin.git 
-</​code>​ 
- 
-Das Admin-Repository hat zwei Verzeichnisse die für bestimmte Zwecke verwendet werden: 
-  * keydir: Hier werden alle SSH-keys abgelegt, die für die Zugangskontrolle gebraucht werden 
-  * config: Dieses Verzeichnis besitzt nur die Datei **gitolite.conf** die für die Verwaltung genutzt wird. 
-==== Verwaltung Nutzer ==== 
-Die Zugangsverwaltung für gitolite erfolgt wie für GIT üblich mit SSH-keys. 
- 
-Pro Nutzer können beliebig viele SSH-Schlüssel für verschiedene Computer eingetragen werden. 
-Die SSH-PublicKeys der Nutzer werden im Verzeichnis "​keydir"​ abgelegt. 
- 
-Das Konzept ist denkbar einfach: Man nehme an, dass der Nutzer "​**hans**"​ zwei keys hat, einen für den **Desktop**,​ einen für den **Laptop**. Die beiden Schlüssel werden dann im keydir als **hans@desktop** und **hans@laptop** abgelegt. ​ 
- 
-**Achtung:​** Der key **admin** darf unter keinen Umständen gelöscht werden! Der Nutzer, der das gitolite-admin Repository verwaltet muss immer als **admin** in den anderen Repositories eingetragen werden. Ein zusätzliche Upload des gleichen Schlüssels unter anderem Namen ist nicht möglich und führt zu Fehlern! 
-==== Verwaltung Repos ==== 
-Hat man die Nutzer wie oben beschrieben angelegt kann man sich an die Konfiguration der repositories machen. 
- 
-Die Struktur des Konfigurationsfiles ist denkbar einfach und wird am Beispiel erklärt: 
-<​code> ​ 
-#file gitolite.conf 
- 
-@projects projekt1 projekt 2         #1 
-@developers hans juergen ​            #2 
- 
-repo    gitolite-admin ​              #3 
-        RW+     ​= ​ admin       #4 
- 
-repo    testing ​                     #5 
-        RW+     ​= ​  ​@all ​            #6 
- 
-repo hans_pub ​                    #7 
- RW+ = hans ​        #8 
-        R       ​= ​      ​juergen ​     #9 
- 
-repo projects  ​            #10 
- RW+ = developers ​  #11 
-</​code>​ 
- 
-Gitolite unterstützt Gruppen die entweder Nutzer oder Repositories zusammenfassen. Der Syntax ist der gleiche und erst bei der Nutzung in der Konfiguration zeigen sich die Unterschiede. 
- 
-  * Zeile 1 definiert eine Repository-Gruppe "​projects"​ mit den Repositories "​projekt1"​ und "​projekt2"​ 
-  * Zeile 2 definiert eine Nutzer-Gruppe mit den Nutzern "​hans"​ und "​juergen"​ 
- 
-Das Admin repository wird in den Zeilen #3 und #4 konfiguriert. Hier ist Vorsicht geboten, da man sich sonst schnell aussperrt! Zeile #5 und #6 definieren das von gitolite angelegt test-repo 
- 
-Danach erfolgt die Definition der Repositories:​ 
-  * Zeile #7 - #9 definieren das repository "​hans_pub"​ in dem hans lesen und schreiben darf, juergen aber nur lesen darf. 
-  * Zeile #10 - #11 definieren die Repositorygruppe "​projects"​. Hierbei hat die Gruppe "​developers"​ vollen Zugriff. 
- 
-Die drei unterschiedlichen Lese- und Schreibrechte sind: 
-  - **R**: Nutzer darf nur lesen 
-  - **RW**: Nutzer darf lesen und schreiben 
-  - **RW+**: Nutzer darf lesen und schreiben und den Befehl ''​git push -f''​ nutzen. 
- 
- 
- 
- 
-==== Upload Config ==== 
-Hat man die Konfiguration angepasst und abgespeichert muss man sie committen und pushen: 
- 
-  - Mit ''​git status''​ pruefen ob alle keys vorhanden sind und die config geändert wurde. Hier sollte man auch prüfen ob nicht eventuell das Dateisystem unbeobachtet Dateien angelegt hat (bspw. Indexdateien),​ die man ignorieren sollte. 
-  - Mit ''​git add .''​ all Änderungen in den Index übernehmen 
-  - Mit ''​git commit -m [Nachricht]''​ die Änderungen versionieren 
-  - Mit ''​git push''​ die Änderungen auf den Server pushen 
- 
-Alle Änderungen werden sofort von Gitolite übernommen,​ neue Repositories und User werden angelegt. 
- 
-Neue Repositories kann man dann mit entsprechenden Nutzerrechten mit einem der beiden folgenden Befehle klonen: 
-<​code>​ 
-git clone [Gitoliteuser]@adresse.des.servers:​[NameDesRepos].git ​ #für SSH auf Port 22 
- 
-git clone ssh://​[Gitoliteuser]@adresse.des.servers:​[SSHPort]/​[NameDesrepos].git ​ #SSH auf anderem Port 
-</​code>​ 
-==== Löschen von Repositories ==== 
- 
-Löscht man ein Repository oder einen Nutzer werden diese zwar gesperrt, verbleiben aber physikalisch auf dem Server! Dazu muss man im Verzeichnis der Gitolite Repositories manuell das Repository löschen. 
- 
-{{tag>​git versionsverwaltung}} 
- 
- 
- 
  

Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.

software/gitolite.txt · Zuletzt geändert: 2012/10/11 10:23 (Externe Bearbeitung)