Making-of del servidor subversion
From Es1
# apt-get update # apt-get install subversion # apt-get install libapache2-svn # apt-get install apg # a2enmod dav # a2enmod dav_svn # mkdir /var/svnES1/
# svnadmin create /var/svnES1/ES1-DL11-02 # cd /location/to/the/template/ # svn import -m 'Template for the seminars' file:///var/svnES1/ES1-DL11-02/ # chown -R www-data /var/svnES1/ES1-DL11-02 # htpasswd2 -cb /var/svnES1/ES1-DL11-02.passwd profe secret # htpasswd2 -b /var/svnES1/ES1-DL11-02.passwd grup11dl02 pgrup11dl02
Edit the file /etc/apache2/conf.d/grup11dl02.conf with the following content:
<Location /grup11dl02>
DAV svn
SVNPath /var/svnES1/ES1-DL11-02
AuthType Basic
AuthName "Subversion Repository ES1-DL11-02"
AuthUserFile /var/svnES1/ES1-DL11-02.passwd
Require valid-user
SSLRequireSSL
</Location>
#!/bin/bash
baseDir=/var/svnES1
template=/home/testfarmclient/template
mkdir -p $baseDir
if false ; then
echo -r > GrupsES1
for dia in DM DJ; do
for grup in 11 12; do
for parellaA in 0 1; do
for parellaB in 0 1 2 3 4 5 6 7 8 9; do
groupID="ES1-$grup$dia-$parellaA$parellaB"
userID="grup-$grup$dia-$parellaA$parellaB"
passwd=`apg -m5 -x5 -n1 -MN -c 2`
echo $groupID $userID $passwd
echo $groupID $userID $passwd >> GrupsES1
done;
done;
done;
done
fi
cat GrupsES1 | while read groupID userID passwd; do
echo $groupID $userID $passwd
cat > /etc/apache2/conf.d/$groupID.conf <<EOF
<Location /$groupID>
DAV svn
SVNPath $baseDir/$groupID
AuthType Basic
AuthName "Subversion Repository $groupID"
AuthUserFile $baseDir/$groupID.passwd
Require valid-user
# SSLRequireSSL # This is needed if you want it secure
</Location>
EOF
continue
svnadmin create $baseDir/$groupID
cd $template
svn import -m 'Template for the seminars' file://$baseDir/$groupID/
chown -R www-data $baseDir/$groupID
htpasswd -cb $baseDir/$groupID.passwd profe secret
htpasswd -b $baseDir/$groupID.passwd $userID $passwd
done
addSvnUser.sh
#!/bin/bash baseDir=/var/svnES1 echo "Usage: $0 group user password (where group something like ES1-12DM-00)" groupID=$1 userID=$2 passwd=$3 echo "executing: htpasswd -b $baseDir/$groupID.passwd $userID $passwd" htpasswd -b $baseDir/$groupID.passwd $userID $passwd