Difference between revisions of "Svn"

From A-Eskwiki
Jump to: navigation, search
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[category:sysop]]
 
[[category:sysop]]
 
[[category:software]]
 
[[category:software]]
Op de vm-gitsvn staan alle svn-repos zoals bijv de Sysop-svn.
+
Op de vm-svn staan alle svn-repos zoals bijv de webcie-svn.
  
=== Svn en websvn installeren ===
+
== Svn en websvn installeren ==
 +
=== Subversion ===
 +
Om op een machine met yum subversion te installeren doe je
 +
yum install subversion
 +
Dit zorgt voor oa een bestand /etc/httpd/conf.d/subversion.conf. Hierin horen alle repositories geconfigureert te staan. De repositories staan standaard in /var/www/svn/.
 +
 
 +
=== IPA/Kerberos ===
 
Installeer svn, websvn en de bijbehorende modules om het goed met kerberos te laten werken:
 
Installeer svn, websvn en de bijbehorende modules om het goed met kerberos te laten werken:
 
<pre>
 
<pre>
Line 10: Line 16:
 
Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:
 
Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:
 
<pre>
 
<pre>
 +
Alias /websvn /usr/share/websvn/
 +
 
<Directory /usr/share/websvn/>
 
<Directory /usr/share/websvn/>
 
   Options MultiViews Indexes FollowSymLinks Includes ExecCGI
 
   Options MultiViews Indexes FollowSymLinks Includes ExecCGI
Line 17: Line 25:
 
   KrbMethodNegotiate On
 
   KrbMethodNegotiate On
 
   KrbMethodK5Passwd On
 
   KrbMethodK5Passwd On
   KrbAuthRealms AESKWADRAAT
+
   KrbAuthRealms A-ESKWADRAAT.NL
 
   Krb5KeyTab /etc/httpd/krb5.keytab
 
   Krb5KeyTab /etc/httpd/krb5.keytab
 
   Require valid-user
 
   Require valid-user
 
</Directory>
 
</Directory>
 +
</pre>
 +
en restart de httpd:
 +
<pre>
 +
service httpd restart
 
</pre>
 
</pre>
 
Zorg er nu voor dat je svn-server met kerberos-credentials kan gebruiken. Maak in de ipaserver de service HTTP/"svnserver" aan. Voer dan op de svnserver het volgende uit:
 
Zorg er nu voor dat je svn-server met kerberos-credentials kan gebruiken. Maak in de ipaserver de service HTTP/"svnserver" aan. Voer dan op de svnserver het volgende uit:
Line 27: Line 39:
 
chown apache:apache /etc/httpd/krb5.keytab
 
chown apache:apache /etc/httpd/krb5.keytab
 
</pre>
 
</pre>
Maak de map /var/www/svn aan en zet de selinux-context goed:
+
Maak de map /var/lib/svn aan en zet de selinux-context goed:
 
<pre>
 
<pre>
mkdir /var/www/svn
+
mkdir /var/lib/svn
restorecon -Rvv /var/www/svn
+
restorecon -Rvv /var/lib/svn
 
</pre>
 
</pre>
 +
=== LDAP ===
 +
Installeer svn, websvn en de bijbehorende modules om het goed met kerberos te laten werken:
 +
<pre>
 +
yum install subversion websvn mod_authz_ldap
 +
</pre>
 +
Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:
 +
<pre>
 +
Alias /websvn /usr/share/websvn/
  
=== Nieuwe repo toevoegen ===
+
<Directory /usr/share/websvn/>
Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/subversion.conf het volgende toe:
+
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
 +
  DirectoryIndex wsvn.php
 +
  AuthType Basic
 +
  AuthBasicProvider ldap
 +
  AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl?uid
 +
  AuthName 'WebSVN'
 +
  Require valid-user
 +
</Directory>
 +
</pre>
 +
en restart de httpd:
 
<pre>
 
<pre>
Alias /*repodir* /var/www/svn/*repodir*
+
service httpd restart
 +
</pre>
 +
Maak de map /var/lib/svn aan en zet de selinux-context goed:
 +
<pre>
 +
mkdir /var/lib/svn
 +
restorecon -Rvv /var/lib/svn
 +
</pre>
  
<Location /*repodir*>
+
== Nieuwe repo toevoegen ==
        Options Indexes FollowSymLinks Includes ExecCGI
+
Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/subversion.conf het volgende toe:
        AuthType Kerberos
+
<pre>
        AuthName "Kerberos Login"
+
<Location /websvn/wsvn/*reponaam*>
        KrbMethodNegotiate On
+
         Require user user1@AESKWADRAAT user2@AESKWADRAAT ...
        KrbMethodK5Passwd On
+
        KrbAuthRealms AESKWADRAAT
+
        Krb5KeyTab /etc/httpd/krb5.keytab
+
         Require valid-user
+
 
</Location>
 
</Location>
 
</pre>
 
</pre>
en restart httpd
+
en voeg je aan /etc/httpd/conf.d/subversion.conf toe
 
<pre>
 
<pre>
service httpd restart
+
<Location /svn/*reponaam*>
 +
  DAV svn
 +
  SVNPath /var/lib/svn/*reponaam*
 +
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
 +
  AuthType Kerberos
 +
  AuthName "Kerberos Login"
 +
  KrbMethodNegotiate On
 +
  KrbMethodK5Passwd On
 +
  KrbAuthRealms AESKWADRAAT
 +
  Krb5KeyTab /etc/httpd/krb5.keytab
 +
  Require user user1@AESKWADRAAT ...
 +
</Location>
 +
</pre>
 +
en voor ldap
 +
<pre>
 +
<Location /svn/*reponaam*>
 +
  DAV svn
 +
  SVNPath /var/lib/svn/*reponaam*
 +
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
 +
  AuthType Basic
 +
  AuthBasicProvider ldap
 +
  AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl?uid
 +
  AuthName 'WebSVN'
 +
  Require ldap-group cn=...
 +
</Location>
 +
</pre>
 +
en reload httpd
 +
<pre>
 +
service httpd reload
 
</pre>
 
</pre>
 
Maak nu de nieuwe repo aan:
 
Maak nu de nieuwe repo aan:
 
<pre>
 
<pre>
cd /var/www/svn
+
cd /var/lib/svn
 
svnadmin create *repodir*
 
svnadmin create *repodir*
 
</pre>
 
</pre>
 
Zet ook de user en de groep van de repo goed.
 
Zet ook de user en de groep van de repo goed.
  
Als je ervoor wilt zorgen dat alleen bepaalde users bij de repo kunnen moet je Require valid-user vervangen door:
+
Zorg er nu voor dat de repo in het websvn overzicht staat. Voeg hiervoor toe aan /etc/websvn/config.php de volgende regel:
 
<pre>
 
<pre>
Require user 'user1'@AESKWADRAAT 'user2'@AESKWADRAAT ...
+
$config->addRepository("reponaam", "file:///var/lib/svn/repodir");
 
</pre>
 
</pre>
Vergeet niet om na dit alles de httpd te restarten!
 
  
Voila! Alles is klaar!
+
== SVN Checkout maken ==
 +
Om nu een checkout van een repository *reponaam* te maken voer je het volgende uit:
 +
<pre>
 +
svn co http://*svnserver*/svn/*reponaam*
 +
</pre>

Latest revision as of 21:08, 31 October 2016

Op de vm-svn staan alle svn-repos zoals bijv de webcie-svn.

Svn en websvn installeren

Subversion

Om op een machine met yum subversion te installeren doe je

yum install subversion

Dit zorgt voor oa een bestand /etc/httpd/conf.d/subversion.conf. Hierin horen alle repositories geconfigureert te staan. De repositories staan standaard in /var/www/svn/.

IPA/Kerberos

Installeer svn, websvn en de bijbehorende modules om het goed met kerberos te laten werken:

yum install subversion websvn mod_auth_kerb mod_dav_svn

Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:

Alias /websvn /usr/share/websvn/

<Directory /usr/share/websvn/>
   Options MultiViews Indexes FollowSymLinks Includes ExecCGI
   DirectoryIndex wsvn.php
   AuthType Kerberos
   AuthName "Kerberos Login"
   KrbMethodNegotiate On
   KrbMethodK5Passwd On
   KrbAuthRealms A-ESKWADRAAT.NL
   Krb5KeyTab /etc/httpd/krb5.keytab
   Require valid-user
</Directory>

en restart de httpd:

service httpd restart

Zorg er nu voor dat je svn-server met kerberos-credentials kan gebruiken. Maak in de ipaserver de service HTTP/"svnserver" aan. Voer dan op de svnserver het volgende uit:

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

Maak de map /var/lib/svn aan en zet de selinux-context goed:

mkdir /var/lib/svn
restorecon -Rvv /var/lib/svn

LDAP

Installeer svn, websvn en de bijbehorende modules om het goed met kerberos te laten werken:

yum install subversion websvn mod_authz_ldap

Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:

Alias /websvn /usr/share/websvn/

<Directory /usr/share/websvn/>
   Options MultiViews Indexes FollowSymLinks Includes ExecCGI
   DirectoryIndex wsvn.php
   AuthType Basic
   AuthBasicProvider ldap
   AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl?uid
   AuthName 'WebSVN'
   Require valid-user
</Directory>

en restart de httpd:

service httpd restart

Maak de map /var/lib/svn aan en zet de selinux-context goed:

mkdir /var/lib/svn
restorecon -Rvv /var/lib/svn

Nieuwe repo toevoegen

Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/subversion.conf het volgende toe:

<Location /websvn/wsvn/*reponaam*>
        Require user user1@AESKWADRAAT user2@AESKWADRAAT ...
</Location>

en voeg je aan /etc/httpd/conf.d/subversion.conf toe

<Location /svn/*reponaam*>
  DAV svn
  SVNPath /var/lib/svn/*reponaam*
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
  AuthType Kerberos
  AuthName "Kerberos Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd On
  KrbAuthRealms AESKWADRAAT
  Krb5KeyTab /etc/httpd/krb5.keytab
  Require user user1@AESKWADRAAT ...
</Location>

en voor ldap

<Location /svn/*reponaam*>
  DAV svn
  SVNPath /var/lib/svn/*reponaam*
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
  AuthType Basic
  AuthBasicProvider ldap
  AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl?uid
  AuthName 'WebSVN'
  Require ldap-group cn=...
</Location>

en reload httpd

service httpd reload

Maak nu de nieuwe repo aan:

cd /var/lib/svn
svnadmin create *repodir*

Zet ook de user en de groep van de repo goed.

Zorg er nu voor dat de repo in het websvn overzicht staat. Voeg hiervoor toe aan /etc/websvn/config.php de volgende regel:

$config->addRepository("reponaam", "file:///var/lib/svn/repodir");

SVN Checkout maken

Om nu een checkout van een repository *reponaam* te maken voer je het volgende uit:

svn co http://*svnserver*/svn/*reponaam*