Difference between revisions of "Git"

From A-Eskwiki
Jump to: navigation, search
(Kerberos en IPA)
Line 28: Line 28:
 
service httpd restart
 
service httpd restart
 
</pre>
 
</pre>
==== Kerberos en IPA ====
+
==== LDAP ====
Installeer als eerste git en gitweb en de benodigde mod_auth_kerb voor htaccess:
+
Installeer als eerste git en gitweb en de benodigde mod_authz_ldap voor htaccess:
 
<pre>
 
<pre>
 
yum install git-core gitweb mod_auth_kerb
 
yum install git-core gitweb mod_auth_kerb
Line 37: Line 37:
 
<Location /git>
 
<Location /git>
 
   Options Indexes FollowSymLinks Includes ExecCGI
 
   Options Indexes FollowSymLinks Includes ExecCGI
   AuthType Kerberos
+
   AuthType Basic
   AuthName "Kerberos Login"
+
   AuthName "GitWeb"
   KrbMethodNegotiate On
+
   AuthBasicProvider ldap
   KrbMethodK5Passwd On
+
   AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl
  KrbAuthRealms AESKWADRAAT
+
  Krb5KeyTab /etc/httpd/krb5.keytab
+
 
   Require valid-user
 
   Require valid-user
 
</Location>
 
</Location>
</pre>
 
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:
 
<pre>
 
ipa-getkeytab -s <ipa-server> -p HTTP/<gitserver> -k /etc/httpd/krb5.keytab
 
chown apache:apache /etc/httpd/krb5.keytab
 
 
</pre>
 
</pre>
 
en restart de httpd
 
en restart de httpd

Revision as of 11:28, 10 July 2013

Git en gitweb initialiseren

Kerberos en IPA

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

en restart de httpd

service httpd restart

LDAP

Installeer als eerste git en gitweb en de benodigde mod_authz_ldap 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 Basic
  AuthName "GitWeb"
  AuthBasicProvider ldap
  AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl
  Require valid-user
</Location>

en restart de httpd

service httpd restart

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";
our $strict_export = true;

Dit zegt dat er in de map /var/lib/git per user een bestandje 'user' is waar de repos van die user in staan.

Vergeet niet om de selinux-context van /var/lib/git goed te zetten (restorecon -Rvv /var/lib/git/)!

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

Misschien is het ook handig om de ownership naar de juiste user en groep te zetten.

Userfile van de lijst met repos

In de map /var/lib/git staat voor elke user die bij een git repo mag, een bestandje 'user' waarin staat bij welke repos de user mag. Het format van het bestand is als volgt:

*repo*/.git *owner*+<owner-email>