Git

From A-Eskwiki
Revision as of 19:16, 17 April 2013 by Pepijno (Talk | contribs)

Jump to: navigation, search

Git en gitweb initialiseren

Installeer als eerste git en gitweb en de benodigde mod_auth_kerb voor htaccess:

yum install git-core gitweb mod_auth_kerb

Zet vervolgens de kerberos-authenticatie erbij in /etc/httpd/conf.d/git.conf:

<Location /git>
  Options Indexes FollowSymLinks Includes ExecCGI
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd On
  KrbAuthRealms AESKWADRAAT
  Krb5KeyTab /etc/httpd/krb5.keytab
  Require valid-user
</Location>

Je moet er natuurlijk ook wel voor zorgen dat de juiste kerberos-keytab-file aanwezig is. Maak daarvoor op de ipaserver de http-service voor de gitserver aan en haal dan de keytab binnen op de gitserver:

ipa-getkeytab -s <ipa-server> -p HTTP/<gitserver> -k /etc/httpd/krb5.keytab
chown apache:apache /etc/httpd/krb5.keytab

Als laatste moet er in de gitweb.conf bijgezet worden dat de lijst van repos afhangt van de user die inlogt op gitweb. Zet het volgende erbij in /etc/gitweb.conf:

use CGI;
my $user = $ENV{'REMOTE_USER'};
our $projects_list = "/var/lib/git/" . "$user";

en restart de httpd

service httpd restart

Dit zegt dat er in de map /var/lib/git per user wat bij een repo kan een bestandje 'user@AESKWADRAAT' is waar de repos van die user in staan.

Nieuwe git-repo aanmaken

Maak een directory aan voor je repo in /var/lib/git/ en initialiseer een nieuwe gitrepo hierin:

cd /var/lib/git
mkdir *repo*
cp *repo*
git init

Vervolgens kan je voor iedere user die bij die git-repo moet kunnen de regel *repo*/.git *owner*+<owner-email> in het bestandje user@AESKWADRAAT zetten.