Freitag, 5. April 2013

Howto: Einrichten gitolite unter Debian

Dieses kurze Howto beinhaltet:
  • Installation und Einrichten eines git Servers mit gitolite
  • Einrichten eines Repositories.
Das Beispielsetup beinhaltet einen git Server (dockstar-nas) und einen Client (w500).

Installation von gitolite und einrichten des gitolite admin Nutzers.

root@dockstar-nas>> apt-get install gitolite git


Erzeugen eines Nutzer/Admin Keys auf der Workstation (w500) und kopieren des Public Keys auf dockstar-nas.

robert@w500>> ssh-keygen -t rsa
robert@w500>> scp ~/.ssh/id_rsa.pub root@dockstar-nas:/tmp

Initialisieren des gitolite repositories.

root@dockstar-nas>>cd /tmp
root@dockstar-nas>>mv id_rsa.pub robert.pub
root@dockstar-nas>>usermod -d /mnt/gitolite gitolite
root@dockstar-nas>>su - gitolite
gitolite@dockstar-nas>>gl-setup /tmp/robert.pup
gitolite@dockstar-nas>>exit
root@dockstar-nas>>  
Wir haben nun als erstes den Public-Key für den Nutzer Robert in robert.pub umbenannt. Dies ist notwendig, da gitolite den Key im Format "nutzer".pub erwartet um dann intern Rechte an diesen Nutzer vergeben zu können. Anschliessend habe ich noch das Archiv Verzeichnis auf meine USB-Platte verschoben. Nun wechselt man in den Nuzter gitolite und initialisiert das gitolite-admin repo.


Klonen des gitolite-admin repos.

robert@w500>>git clone ssh://gitolite@dockstar-nas/gitolite-admin
robert@w500>>cd gitolite-admin

Wir haben jetzt ein gitolite-admin Verzeichnis mit den conf/ und keydir/ Verzeichnissen. Das conf/ Verzeichnis beinhaltet die gitolite.conf in welcher man Nutzer, Rechte und Repositories definiert. In unserem Beispiel gibt es einen Eintrag mit robert wobei dies der eben angelegte Nutzer ist.

robert@w500>>cat conf/gitolite.conf

repo gitolite-admin
RW+ = robert



Wir könnten nun einen weiteren Nutzer foo hinzufügen indem wir einen ssh-key erzeugen, den public key in foo.pub umbenennen, diesen dann in das keydir Verzeichnis kopieren und am Ende dann in der gitolite.conf den Nutzer Rechte für die Repositories geben (siehe unten).

Anlegen eines neuen Repositories (devel).

Im folgenden wollen wir jetzt noch ein weiteres Repository (devel) für die Nutzer robert und foo anlegen. Hierzu editieren wir die conf/gitolite.conf und fügen folgende Zeilen hinzu:

repo devel
RW+ = robert foo

Anschliessend müssen wir unsere Änderungen commiten und auf den Server pushen.

robert@w500>>git add keydir/*;
robert@w500>>git commit -a -m 'added user foo, created devel ropository and granting write access to robert and foo'
robert@w500>>git push


Diese Kommandozeile pusht die Änderungen nun zu dem Server, der Server wird nun ein Repository "devel" erzeugen. Wir können nun auf unsere Workstation das devel Repository auschecken und damit arbeiten.

robert@w500>>git clone ssh://gitolite@dockstar-nas/devel
robert@w500>>cd devel
robert@w500>>echo "This is our devel repo" > README
robert@w500>>git commit -a -m 'initial commit'
robert@w500>>git push origin master:refs/heads/master


Keine Kommentare:

Kommentar veröffentlichen