Dies wird eine kleine Anleitung wie man die Gitolite Benutzerverwaltung für Git Repositories in Betrieb nimmt.
SERVER:
Als erstes müssen wir Git und Gitolite auf dem Server installieren.
$ sudo apt-get update
$ sudo apt-get install git-core gitolite
$ sudo adduser --system --group --shell /bin/bash --disabled-password git
ADMIN CLIENT:
Dann müssen wir Public/Private SSH Keys auf einen Client generieren mit den wir das Repo verwalten möchten.
$ ssh-keygen -t rsa
$ scp ~/.ssh/id_rsa.pub regular_username@git_server_IP_address:/tmp/git-admin.pub
$ mkdir ~/git-admin-keys
$ cp ~/.ssh/id_rsa ~/git-admin-keys
$ cp ~/.ssh/id_rsa.pub ~/git-admin-keys
SERVER:
Dieser Key wird nun auf den Server installiert.
$ sudo su - git
$ gl-setup /tmp/git-admin.pub
ADMIN CLIENT:
Gitolite wird auch via einem eigenen Repository konfiguriert und eingestellt. Dieses kann man mit folgenden Befehl klonen.
$ git clone git@git_server_IP_address:gitolite-admin ~/gitolite-admin
Mit folgenden Befehl können wir Nutzer im Gitolite Repo anlegen
$ cp /path/to/john's/public/key.pub ~/gitolite-admin/keydir/john.pub
$ git add ~/gitolite-admin/keydir/john.pub
$ git commit -a -m "New user John added"
Nun könnnen wir die Hauptkonfigurationsdatei erstellen.
$ nano ~/gitolite-admin/conf/gitolite.conf
Folgende Standard Datei von mir ist sinnvoll und sollte selbsterklärend sein.
gitolite.conf:
################################################################################
# Gruppen-Makros: #
# Per Leerzeichen getrennte Usernamen; es dürfen nur solche User eingetragen #
# werden, die mittels ihrer im 'keydir'-Verzeichnis abgelegten public ssh keys #
# eingerichtet worden sind. #
# #
# z.B.: @group_name = user1 user2 user3 #
# #
################################################################################
@magunait-admins = user1
@magunait-engineers = user4 user5
@magunait-tools = usertoolchain
###############################################################################
# Admin Repository: #
# Mit diesem Repository werden Benutzer und Repositories verwaltet. #
###############################################################################
# Admin-Repository
repo gitolite-admin
RW = @magunait-admins
R = @magunait-engineers
###############################################################################
# MagunaIT-Repositories: #
# Diese Repositories werden vom MagunaIT-Team verwaltet. #
###############################################################################
# Masterbrain-Repositories
repo repo1
RW = @magunait-engineers @magunait-tools
repo repo2 repo3
RW = @magunait-engineers @magunait-tools
Nun kann man die Änderungen mit folgenden Befehlen auf den Git Server hochladen.
$ git commit -a -m "Add user credentials"
$ git push
DEVELOPER CLIENT:
Folgende Befehle um den Client Standard Werte des Benutzer(s) zu übermitteln ist ratsam.
Unix (Linux, Mac OS X etc.)
$ git config --global core.editor your_editor_choice
$ git config --global user.name "your_name_here"
$ git config --global user.email "your_email@address.com"
Dies ist eine kleine Anleitung wie ich bei einigen Kunden Git einfach und schnell installiert habe.