Difference between revisions of "Svn"

From A-Eskwiki
Jump to: navigation, search
(Nieuwe repo toevoegen)
 
(31 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.
  
=== Nieuwe repo toevoegen ===
+
== Svn en websvn installeren ==
Zorg er eerst voor dat je svn-server met kerberos-credentials kan gebruiken. In de ipaserver maak de service HTTP/"svnserver" aan. Voer dan op de svnserver het volgende uit:
+
=== 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:
 +
<pre>
 +
yum install subversion websvn mod_auth_kerb mod_dav_svn
 +
</pre>
 +
Zorg ervoor dat het bestand /etc/httpd/conf.d/websvn.conf er als volgt uit ziet:
 +
<pre>
 +
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>
 +
</pre>
 +
en restart de httpd:
 +
<pre>
 +
service httpd restart
 +
</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:
 
<pre>
 
<pre>
 
ipa-getkeytab -s <ipa-server> -p HTTP/<svnserver> -k /etc/httpd/krb5.keytab
 
ipa-getkeytab -s <ipa-server> -p HTTP/<svnserver> -k /etc/httpd/krb5.keytab
 +
chown apache:apache /etc/httpd/krb5.keytab
 
</pre>
 
</pre>
Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/subversion.conf het volgende toe:
+
Maak de map /var/lib/svn aan en zet de selinux-context goed:
 
<pre>
 
<pre>
Alias /*repodir* /var/www/svn/*repodir*
+
mkdir /var/lib/svn
 +
restorecon -Rvv /var/lib/svn
 +
</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/
  
<Location /repos>
+
<Directory /usr/share/websvn/>
        Options Indexes FollowSymLinks Includes ExecCGI
+
  Options MultiViews Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
+
  DirectoryIndex wsvn.php
        AuthType Kerberos
+
  AuthType Basic
        AuthName "Kerberos Login"
+
  AuthBasicProvider ldap
        KrbMethodNegotiate On
+
  AuthLDAPURL ldap://ldap/ou=mensjes,ou=accounts,dc=a-eskwadraat,dc=nl?uid
        KrbMethodK5Passwd On
+
  AuthName 'WebSVN'
        KrbAuthRealms AESKWADRAAT
+
  Require valid-user
        Krb5KeyTab /etc/httpd/krb5.keytab
+
</Directory>
         Require valid-user
+
</pre>
 +
en restart de httpd:
 +
<pre>
 +
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>
 +
 
 +
== Nieuwe repo toevoegen ==
 +
Om een repo toe te voegen voeg je aan het bestand /etc/httpd/conf.d/subversion.conf het volgende toe:
 +
<pre>
 +
<Location /websvn/wsvn/*reponaam*>
 +
         Require user user1@AESKWADRAAT user2@AESKWADRAAT ...
 
</Location>
 
</Location>
 
</pre>
 
</pre>
Nu voeg je een nieuwe dir aan voor je repo:
+
en voeg je aan /etc/httpd/conf.d/subversion.conf toe
 
<pre>
 
<pre>
cd /var/www/svn
+
<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>
 +
Maak nu de nieuwe repo aan:
 +
<pre>
 +
cd /var/lib/svn
 
svnadmin create *repodir*
 
svnadmin create *repodir*
chown -R apache.apache *repodir*
 
 
</pre>
 
</pre>
Als je ervoor wilt zorgen dat alleen bepaalde users bij de repo kunnen moet je Require valid-user vervangen door:
+
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:
 +
<pre>
 +
$config->addRepository("reponaam", "file:///var/lib/svn/repodir");
 +
</pre>
 +
 
 +
== SVN Checkout maken ==
 +
Om nu een checkout van een repository *reponaam* te maken voer je het volgende uit:
 
<pre>
 
<pre>
Require user 'user1'@AESKWADRAAT 'user2'@AESKWADRAAT ...
+
svn co http://*svnserver*/svn/*reponaam*
 
</pre>
 
</pre>
Vergeet niet om na dit alles de httpd te restarten!
 
Voila! Alles is klaar!
 

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*