Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL HARDWARE FORUM HARDWARE FAQ HARDWARE TUTORIELS HARDWARE LIVRES HARDWARE OUTILS HARDWARE TESTS

Installation d'outils de gestion de sources (SCM) sur un NAS

Comment installer Trac et Subversion sur un NAS DS-101 ? Telle est la question que je me suis posée récemment.

Introduction
I. Accès au système du NAS
II. Installation des outils de gestion des paquets
III. Configuration du serveur Subversion
IV. Installation et utilisation de TRAC
IV-A. Installation des modules nécessaires
IV-B. Initialisation de TRAC
IV-C. Chargement automatique de TRAC au démarrage
V. Communication entre TRAC et Subversion
VI. Conclusion


Introduction

Quand je me suis acheté un NAS il y a quelques années déjà, j'ai choisi un Synology DS101 (maintenant remplacé par les 107, 207 ou 407 selon le nombre de disques durs que l'on veut) car le code source était sous GPL. Naturellement, le fabriquant a mis des protections, mais au fur et à mesure, des outils sont apparus pour débrider la bête (et maintenant, le fabricant autorise officieusement ce genre de pratiques). Un autre avantage du DS101 par rapport à d'autres NAS est qu'il n'a pas de ventilateur et est donc silencieux (à l'époque, le disque était tout de même dans ma chambre), malheureusement, le disque interne est en IDE. Maintenant, les DSx0x possèdent des ventilateurs et supportent uniquement les disques SATA.

Récemment, j'ai découvert Trac et son intégration avec Subversion, idéal pour développer, mais il faut un serveur dédié, et ne voulant pas de nouvelle machine consommatrice d'électricité, je me suis retourné vers mon NAS. C'est ce que je vais décrire dans cet article, du débridage à la configuration des outils.


I. Accès au système du NAS

Par défaut, il n'y a aucun accès au système d'exploitation, pas de SSH, pas de telnet. Mais dès le départ, cette protection a été contournée et maintenant il est très facile d'activer telnet sur le NAS (il vaut mieux avoir la dernière version du firmware pour être sûr que Synology a bien supprimé le mot de passe Synology qui varie selon les jours). A l'aide des fichiers disponibles ici, il est possible d'activer ou de désactiver telnet à l'aide de l'interface de mise à jour du NAS sur le serveur Web.

Une fois l'opération effectuée, il est possible de se connecter en root, le mot de passe étant le mot de passe administrateur de la machine.


II. Installation des outils de gestion des paquets

Les Synology tournent sur deux plateformes, ARM et PPC, selon les versions. Il faut alors utiliser un boostrap pour installer un gestionnaire de paquets. Les fichiers sont ici pour les ARMs et ici pour les PPC. Ce fichier doit être copié sur le Synology puis exécuté grâce à telnet.

warning Pour les derniers NAS de Synology, la série DS-x07, il n'y a pas encore de bootstrap car les processeurs ARM ne fonctionnent plus dans le même mode que pour les précédents. Il faut donc encore un peu patienter.
warning Une fois installé et redémarré, il est possible que les services ne redémarrent pas (Apache et Samba). Le disque n'est plus accessible, la configuration Web déclenche une erreur. Cela est dû à une ligne manquante dans /etc/ld.so.conf : il faut y ajouter /lib. Une fois ajouté, il faut lancer la commande ldconfig et redémarrer le serveur.

III. Configuration du serveur Subversion

Apache 2 vient directement avec un module DAV SVN. L'avantage en outre est que le serveur est directement lancé au démarrage sur le port 8000 (le port 80 est réservé au serveur Apache natif du système).

Il faut tout d'abord installer les paquets adéquats :

ipkg svn
ipkg apache2
Une fois installé, on peut créer un repository n'importe où (par exemple sur le disque accessible de l'extérieur, donc sur /volume1/svn entre autres) et configurer comme on le désire ce repository.

Après, il faut démarrer le serveur et ajouter une ligne dans le fichier /opt/etc/apache2/httpd.conf afin de lui ajouter la configuration du module DAV :

Include /opt/etc/apache2/conf.d/mod_dav_svn.conf
Pour plus de renseignements sur la configuration du serveur, je vous renvoie au tutoriel dédié à Subversion pour adapter le fichier mod_dav.svn.conf.

idea L'intérêt de mettre le repository sur un dossier accessible de l'extérieur est qu'il sera facile de modifier ainsi les fichiers de configuration.
Une fois le repository paramétré, il faut redémarrer le serveur pour l'activer.

info Dans le fichier de configuration d'Apache httpd.conf, une grande liste de modules est chargée au démarrage du service. Ils ne sont pas nécessaires et sont désactivables (il suffit de commenter les lignes LoadModule).
warning Il faut changer les propriétés du repository pour que l'utilisateur nobody puisse y accéder en écriture. Le plus simple est donc de lui donner la propriété des dossiers ainsi qu'au groupe users. Ainsi, en permettant un accès en lecture/écriture à l'utilisateur et au groupe, le serveur Apache pourra modifier le repository ainsi que vous depuis l'explorateur de fichiers.

IV. Installation et utilisation de TRAC


IV-A. Installation des modules nécessaires

TRAC est un module Python qui peut être exécuté par plusieurs modules, comme mod_fastcgi qui s'interface avec plusieurs serveurs, ou mod_python ou mod_wsgi. Il faut tout de même commencer par récupérer les paquets TRAC :

ipkg install py25-trac
ipkg install svn-py

IV-B. Initialisation de TRAC

Une fois installé, un environnement TRAC peut être créé :

trac-admin /volume1/trac/ initenv
Une série de questions sont posées, la seule importante est le chemin vers le repository Subversion qui n'est pas le bon par défaut (si vous désirez une autre base de données, pas la peine d'installer py-sqlite).

Il est possible d'utiliser TRAC directement à l'aide de tracd :

tracd --port 800 /volume1/trac/

IV-C. Chargement automatique de TRAC au démarrage

Trac ne peut malheureusement pas encore être chargé à partir d'Apache. La raison est que Python est buggé sur les DS (il n'est pas capable de gérer les flottants, ce qui est utilisé d'une manière ou d'une autre dans les mods Apache). Il faut donc charger tracd au démarrage en mode daemon.

warning A nouveau, l'utilisateur nobody devra avoir accès au dossier trac en lecture, en écriture et exécution.
Pour lancer tracd automatiquement au démarrage, le plus simple est d'utiliser un script de démarrage placé dans /opt/etc/init.d. Normalement, il y a un script S80Apache dans ce même dossier. Le but est de créer un fichier presque identique, mais qui lancera le daemon tracd.

idea L'option -d permet de lancer tracd en mode daemon

V. Communication entre TRAC et Subversion

Le principal avantage de Subversion est la possibilité d'avoir des post-commit hooks. Il s'agit d'un script exécuté après le commit sur le repository (il en existe d'autres qui peuvent se déclencher avant le commit pour une vérification par exemple des fichiers).

Dans le dossier hooks se trouvent des patrons pour ces scripts. Par exemple le script suivant appellera trac-post-commit-hook.py placé dans /volume1/trac :
post-commit

#!/bin/sh

 REPOS="$1"
 REV="$2"
 LOG=`/opt/bin/svnlook log -r $REV $REPOS`
 AUTHOR=`/opt/bin/svnlook author -r $REV $REPOS`
 TRAC_ENV='/volume1/trac'
 TRAC_URL='http://trac.mysite.com/project/'

 /opt/bin/python2.5 /volume1/trac/trac-post-commit-hook \
  -p "$TRAC_ENV"  \
  -r "$REV"       \
  -u "$AUTHOR"    \
  -m "$LOG"       \
  -s "$TRAC_URL"

VI. Conclusion

Même si les NAS de Synology ne permettent pas un fonctionnement correct de Python, il est possible de les utiliser pour la gestion de projet. Même s'il y a deux serveurs en réalité, Apache et mod_proxy peuvent rediriger une nouvelle page vers le serveur tracd.



Valid XHTML 1.1!Valid CSS!

Copyright © 2007 Miles. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique PC : buchs - Contacter par EMail :
Vos questions techniques : forum d'entraide PC - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.