Difference between revisions of "Git"

From A-Eskwiki
Jump to: navigation, search
(Nieuwe git-repo aanmaken)
Line 1: Line 1:
 
[[category:sysop]]
 
[[category:sysop]]
=== Nieuwe git-repo aanmaken ===
+
=== Git en gitweb initialiseren ===
Zorg er eerst voor dat je svn-server met kerberos-credentials kan gebruiken. In de ipaserver maak de service HTTP/"gitserver" aan. Voer dan op de svnserver het volgende uit:
+
Installeer als eerste git en gitweb en de benodigde mod_auth_kerb voor htaccess:
 
<pre>
 
<pre>
ipa-getkeytab -s <ipa-server> -p HTTP/<gitserver> -k /etc/httpd/krb5.keytab
+
yum install git-core gitweb mod_auth_kerb
 
</pre>
 
</pre>
Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/git.conf het volgende toe:
+
Zet vervolgens de kerberos-authenticatie erbij in /etc/httpd/conf.d/git.conf:
 
<pre>
 
<pre>
Alias /git /var/www/git
+
<Location /git>
 
+
<Directory /var/www/git>
+
 
   Options Indexes FollowSymLinks Includes ExecCGI
 
   Options Indexes FollowSymLinks Includes ExecCGI
  AddHandler cgi-script .cgi
 
  DirectoryIndex gitweb.cgi
 
  AllowOverride All
 
 
   AuthType Kerberos
 
   AuthType Kerberos
 
   AuthName "Kerberos Login"
 
   AuthName "Kerberos Login"
Line 21: Line 16:
 
   Krb5KeyTab /etc/httpd/krb5.keytab
 
   Krb5KeyTab /etc/httpd/krb5.keytab
 
   Require valid-user
 
   Require valid-user
</Directory>
+
</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>
 +
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:
 +
<pre>
 +
use CGI;
 +
my $user = $ENV{'REMOTE_USER'};
 +
our $projects_list = "/var/lib/git/" . "$user";
 +
</pre>
 +
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:
 +
<pre>
 +
cd /var/lib/git
 +
mkdir *repo*
 +
cp *repo*
 +
git init
 
</pre>
 
</pre>
 +
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.

Revision as of 19:14, 17 April 2013

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";

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.