99 lines
2.6 KiB
Markdown
Executable file
99 lines
2.6 KiB
Markdown
Executable file
<!-- title: Un serveur SVN en 5 minutes -->
|
|
<!-- category: Développement -->
|
|
<!-- tag: planet -->
|
|
|
|
Bien qu'on soit en 2017, on peut avoir besoin d'un gestionnaire de source
|
|
centralisé et Subversion reste une valeur sure.<!-- more --> On va donc s'installer un
|
|
serveur SVN sur Debian Jessie en 5 minutes chrono.
|
|
|
|
D'abord on installe SVN et on crée un répertoire pour les données.
|
|
|
|
$ apt-get install subversion
|
|
$ mkdir -p /srv/svn/repos
|
|
|
|
Et on initialise un dépôt (aka *repository*) nommé "yaxsoft".
|
|
|
|
$ svnadmin create /svn/repos/yaxsoft
|
|
|
|
On ajoute des droits d'accès simples : un utilisateur en lecture-écriture, pas
|
|
d'accès anonyme.
|
|
|
|
Editer */srv/svn/repos/yaxsoft/svnserve.conf* :
|
|
|
|
[general]
|
|
password-db = passwd
|
|
authz-db = authz
|
|
realm = Yax Repo
|
|
|
|
Editer */srv/svn/repos/yaxsoft/conf/authz* :
|
|
|
|
[groups]
|
|
dev = yannic
|
|
|
|
[/]
|
|
* =
|
|
@dev = rw
|
|
|
|
Editer */srv/svn/repos/yaxsoft/conf/passwd* :
|
|
|
|
[users]
|
|
yannic = mon_mot_de_passe
|
|
|
|
On crée un répertoire pour les logs :
|
|
|
|
$ mkdir -p /var/log/svn
|
|
|
|
On ajoute un utilisateur UNIX *svn* qui va lancer le serveur et aura les
|
|
permission sur les fichiers de données :
|
|
|
|
$ adduser svn --system --disabled-login --no-create-home --group
|
|
$ chown -R svn:svn /srv/svn /var/log/svn
|
|
|
|
On crée le fichier avec les paramètres de lancement du service */etc/default/svnserve* :
|
|
|
|
DAEMON_ARGS="--daemon --pid-file /srv/svn/svnserve.pid --root /srv/svn/repos --log-file /var/log/svn/svnserve.log"
|
|
|
|
Enfin, on définit le recyclage des logs avec un fichier */etc/logrotate.d/svn* :
|
|
|
|
/var/log/svn/*.log {
|
|
daily
|
|
missingok
|
|
rotate 10
|
|
compress
|
|
notifempty
|
|
create 640 svn svn
|
|
sharedscripts
|
|
postrotate
|
|
if /bin/systemctl status svnserve > /dev/null ; then \
|
|
/bin/systemctl restart svnserve > /dev/null; \
|
|
fi;
|
|
endscript
|
|
}
|
|
|
|
Il reste à créer un fichier de lancement pour **systemd** : */etc/systemd/system/svnserve.service* :
|
|
|
|
[Unit]
|
|
Description=Subversion daemon
|
|
After=syslog.target network.target
|
|
|
|
[Service]
|
|
Type=forking
|
|
PIDFile=/srv/svn/svnserve.pid
|
|
EnvironmentFile=/etc/default/svnserve
|
|
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
|
|
ExecReload=/bin/kill -s SIGHUP $MAINPID
|
|
User=svn
|
|
Group=svn
|
|
KillMode=process
|
|
Restart=on-failure
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
|
|
Finalement, on met le service en démarrage automatique et on lance notre serveur SVN :
|
|
|
|
$ systemctl daemon-reload
|
|
$ systemctl enable svnserve
|
|
$ systemctl start svnserve
|
|
|
|
Notre SVN est accessible en **svn://mon_serveur/yaxsoft**.
|