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.
$ 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.