Admin Café Forums  

Précédent   Admin Café Forums > Les technologies du Domaine Libre > Administration de serveurs web

Notices

Réponse
 
Outils de la discussion
  #1  
Vieux 30/01/2009, 23h08
Avatar de Kawo
Kawo Kawo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Saint-Gilles
Âge: 27
Messages: 212
Pouvoir de réputation: 10
Kawo est sur la bonne voie
Envoyer un message via MSN à Kawo Envoyer un message via Skype™ à Kawo
Par défaut Création automatique de dépôts Subversion dans Redmine

Voici un complément à mon précédent tutorial (Installation de Redmine avec Apache, le tout sur une Debian Etch).

Dans un premier temps nous allons mettre en place un serveur Subversion qui sera navigable depuis Apache ou Redmine.
Nous allons ensuite automatiser la création d'un dépôt Subversion depuis la liste des projets contenu dans Redmine (l'effet est rétro-actif !).

I. Mise en place de Subversion

Si vous avez suivi mon précédent tuto, vous devriez déjà avoir Subversion d'installer (pour récupérer la version trunk de Redmine). Il faut néanmoins rajouter un paquet nécessaire à Apache :

Citation:
# aptitude install subversion libapache2-svn
Nous allons ajouter un nouvel utilisateur dont la /home contiendra les dépôts svn :

Citation:
# useradd -d /home/ce_que_vous_voulez -g 33 -m -s /bin/bash ce_que_vous_voulez
Puis nous allons créer un nouveau dossier dans ce nouvel /home :

Citation:
# su utilisateur_cree_plus_haut
$ mkdir /home/utilisateur_cree_plus_haut/svn
$ exit
Maintenant nous allons créer un vhost qui permettra de naviguer dans Subversion depuis Apache :

Citation:
# nano /etc/apache2/sites-available/svn
Citation:
<VirtualHost *:80>
ServerAdmin webmaster@votredomaine.tld
ServerName sousdomaine.votredomaine.tld
DocumentRoot /home/utilisateur_cree_plus_haut/svn

<Directory /home/utilisateur_cree_plus_haut/svn>
DAV svn

SVNParentPath /home/utilisateur_cree_plus_haut/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
</Directory>

ErrorLog /var/log/apache2/sousdomaine.votredomaine.tld.error.log
LogLevel warn
CustomLog /var/log/apache2/sousdomaine.votredomaine.tld.access.log combined

ServerSignature Off
</VirtualHost>
On installe ce vhost :

Citation:
# a2ensite svn
On créé le fichier d'authentification :

Citation:
# htpasswd -cm /etc/apache2/dav_svn.passwd login_voulu
Si vous voulez ajouter d'autres utilisateurs :

Citation:
# htpasswd -m /etc/apache2/dav_svn.passwd login_voulu2
Création du fichier des permissions :

Citation:
# nano /etc/apache2/dav_svn.authz
Citation:
[groups]
admin = login1,login2
visiteurs = login3

[/]
@admin = rw
@visiteurs = r
Ceci est un contenu exemple bien sûr.

Dans la section 'groups', nous créons une liste d'utilisateurs (créés juste avant) appartenant à un groupe.

Dans la seconde section, on spécifie les permissions pour la racine de Subversion (et donc l'accès à tous les dépôts).
Le groupe 'admin' a accès en lecture-écriture (rw), le groupe 'visiteurs' n'a accès qu'en lecture (r).

On redémarre Apache :

Citation:
# /etc/init.d/apache2 restart
Et on test :

http://sousdomaine.votredomaine.tld

Cela devrait vous demander de vous identifier. Vous obtiendrez néanmoins une erreur 403 car vous n'avez pas le droit de lister la racine (ce qui est normal).

On peut passer à Redmine :-)


II. Intégration et automatisation dans Redmine

Il faut tout d'abord activer l'option WebService dans Redmine : Administration/Configuration/Dépôts et cochez "Activer les WS pour la gestion des dépôts".

Pour automatiser la création d'un dépôt Subversion pour chaque projet Redmine, on va simplement utiliser un script écrit en Ruby fournit avec Redmine.

Tout d'abord nous allons créer un utilisateur temporaire (ou si vous avez déjà un utilisateur qui n'a pas de droit d'écriture dans /home/utilisateur_cree_plus_haut/svn, vous pouvez l'utiliser) afin de tester ce script :

Citation:
# useradd test
# su test
Puis nous allons tester le script :

Citation:
$ cd /home/utilisateur_contenant_redmine/redmine/extra/svn
$ ruby reposman.rb --redmine sousdomaine.votredomaine.tld --svn-dir /home/utilisateur_cree_plus_haut/svn --owner www-data --url http://sousdomaine.votredomaine.tld/svn-private/ --verbose
(ne faites pas attention au chemin "/svn-private/", nous verrons ça après).

Cette commande devrait vous retourner :

Citation:
querying Redmine for projects...
retrieved 1 projects
treating project ProjetTest
svnadmin: Échec de la création du dépôt
Il y a un échec car l'utilisateur qui a lancé le script n'a pas les permissions comme prévu. Par-contre on voit bien que le script trouve un projet et essaye de créer un dépôt, impeccable.

On va pouvoir injecter ce script dans le crontab de root :

Citation:
$ exit
# crontab -e
Citation:
10 * * * * ruby /home/utilisateur_contenant_redmine/redmine/extra/svn/reposman.rb --redmine sousdomaine.votredomaine.tld --svn-dir /home/utilisateur_cree_plus_haut/svn --owner www-data --url http://sousdomaine.votredomaine.tld/svn-private/ >> /var/log/reposman.log
Cette tâche va s'exécuter toutes les heures passées 10 minutes. Vous pouvez bien-sûr modifier cette valeur, je vous renvois à l'utilisation de crontab ;-)

Vous pouvez visualiser la bonne exécution (ou pas) en consultant le log dans /var/log/reposman.log.

On va maintenant modifier le vhost créé plus haut (svn) pour qu'il ressemble à ceci :

Citation:
<VirtualHost *:80>
ServerAdmin webmaster@votredomaine.tld
ServerName sousdomaine.votredomaine.tld

<Location /svn>
DAV svn

SVNParentPath /home/utilisateur_cree_plus_haut/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
</Location>

<Location /svn-private>
DAV svn
SVNParentPath /home/utilisateur_cree_plus_haut/svn
Order deny,allow
Deny from all
# only allow reading orders
<Limit GET PROPFIND OPTIONS REPORT>
Allow from METTRE_ICI_IP_DE_VOTRE_SERVEUR
</Limit>
</Location>

ErrorLog /var/log/apache2/sousdomaine.votredomaine.tld.error.log
LogLevel warn
CustomLog /var/log/apache2/sousdomaine.votredomaine.tld.access.log combined

ServerSignature Off
</VirtualHost>
Votre dépôt Subversion est maintenant accessible via l'url :

http://sousdomaine.votredomaine.tld/svn/

Avec le système d'authentification créé plus haut.

Par-contre il est désormais aussi accessible via l'url :

http://sousdomaine.votredomaine.tld/svn-private/

En lecture seule et seulement par votre serveur.
Cette url est utilisée automatiquement par Redmine et lui permet de naviguer dans les dépôts en lecture seule.

Et voilà !
Normalement, si tout s'est bien passé, une tâche va vérifier toutes les heures passées de 10min si des projets existent dans Redmine.
Si c'est le cas, il vérifie qu'un dépôt existe et dans le cas contraire le créera.

Accessoirement vous pouvez accéder à vos dépôts directement depuis Apache via l'url http://sousdomaine.votredomaine.tld/svn avec les permissions spécifiques pour chaque utilisateur.
Ça vous permet aussi d'utiliser un éditeur/IDE avec Subversion....
__________________
Administrateur
Réponse avec citation
Liens Sponsorisés
  #2  
Vieux 23/03/2009, 21h23
BigGamer95 BigGamer95 est déconnecté
Nouveau membre
 
Date d'inscription: February 2009
Localisation: france
Messages: 3
Pouvoir de réputation: 0
BigGamer95 est sur la bonne voie
Par défaut

merci pour ce super tuto, je ne l'ai pas encore fait, avant j'aimerai résoudre un autre problème concernant subversion :s

j'ai actuellement un kimsufi, le moins cher, avec redmine et mongrel, j'ai jusqu'a présent désactiver la gestion de dépot, et la j'aimerai l'activer
j'ai testé l'import d'un dépot svn assez gros (+ de 1000 revision), tout à trés bien fonctionné (je n'ai testé qu'en anonyme, je sais pas si l'accés en écriture avec login et mdp du dépot marche, mais je pense que oui)

par contre pendant l'import, le cpu est utilisé à 100% ce qui peut être génant pour les autres sites et serveur de jeux du kimsufi :s
est-ce normal que le cpu soit autant solicité? est-il possible de limiter la consommation du redmine à 20% du cpu et que cela prenne plus de temps?

merci.
Réponse avec citation
  #3  
Vieux 24/03/2009, 11h59
Avatar de Kawo
Kawo Kawo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Saint-Gilles
Âge: 27
Messages: 212
Pouvoir de réputation: 10
Kawo est sur la bonne voie
Envoyer un message via MSN à Kawo Envoyer un message via Skype™ à Kawo
Par défaut

C'est hélas un des problèmes de subversion : certaines commandes avec un certains nombres de fichiers sont très lourdes. C'est le cas de la commande import.
L'effet est accentué avec le fait que ton serveur n'a "qu'un" petit celeron monocore.
Par exemple j'ai actuellement un serveur sur un RPS III (dual core 1,9hgz) et ça passe comme une lettre à la Poste.
Enfin depuis j'ai laissé tombé svn pour me diriger vers les DCVS du genre Git ou Mercurial et c'est le jour et la nuit niveau performance.

Pour la limitation du cpu à un programme donné, je sais que c'est possible par-contre c'est hors de ma connaissance pour l'instant, désolé :) (en jouant avec des quota ou de la virtualisation.. ?)
__________________
Administrateur
Réponse avec citation
  #4  
Vieux 06/08/2009, 21h38
kick kick est déconnecté
Nouveau membre
 
Date d'inscription: August 2009
Localisation: lyon
Messages: 8
Pouvoir de réputation: 0
kick est sur la bonne voie
Par défaut

Bonjour,
maintenant mon probleme ce situe sur ce topic
Quand je tentes la commande suivante:
ruby reposman.rb --redmine http://87.98.130.5/svn --svn-dir /home/svnuser/svn --owner www-data --url http://87.98.130.5/svn/svn-private/ --verbose

J'obtiens l'erreur suivante:
Citation:
querying Redmine for projects...
Unable to connect to http://87.98.130.5/svn/sys/service.wsdl : unknown element: {}html

Dernière modification par kick ; 06/08/2009 à 22h26
Réponse avec citation
  #5  
Vieux 06/08/2009, 22h37
Avatar de Kawo
Kawo Kawo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Saint-Gilles
Âge: 27
Messages: 212
Pouvoir de réputation: 10
Kawo est sur la bonne voie
Envoyer un message via MSN à Kawo Envoyer un message via Skype™ à Kawo
Par défaut

As-tu activé l'option WS dans Redmine ? (il faut relancer le serveur une fois fait)
__________________
Administrateur
Réponse avec citation
  #6  
Vieux 06/08/2009, 22h44
kick kick est déconnecté
Nouveau membre
 
Date d'inscription: August 2009
Localisation: lyon
Messages: 8
Pouvoir de réputation: 0
kick est sur la bonne voie
Par défaut

je reboot le serveur et je te tiens au jus
Réponse avec citation
  #7  
Vieux 06/08/2009, 22h56
kick kick est déconnecté
Nouveau membre
 
Date d'inscription: August 2009
Localisation: lyon
Messages: 8
Pouvoir de réputation: 0
kick est sur la bonne voie
Par défaut

Le ws est bien active, le serveur reboote.
Rien.Toujours le meme soucis :s
Réponse avec citation
  #8  
Vieux 10/08/2009, 17h13
Avatar de Kawo
Kawo Kawo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Saint-Gilles
Âge: 27
Messages: 212
Pouvoir de réputation: 10
Kawo est sur la bonne voie
Envoyer un message via MSN à Kawo Envoyer un message via Skype™ à Kawo
Par défaut

Tu utilises quelle version de Redmine exactement ?
__________________
Administrateur
Réponse avec citation
  #9  
Vieux 11/08/2009, 03h38
kick kick est déconnecté
Nouveau membre
 
Date d'inscription: August 2009
Localisation: lyon
Messages: 8
Pouvoir de réputation: 0
kick est sur la bonne voie
Par défaut

j'ai la version: 0.8.4
Réponse avec citation
  #10  
Vieux 11/08/2009, 10h55
Avatar de Kawo
Kawo Kawo est déconnecté
Administrateur
 
Date d'inscription: June 2008
Localisation: Saint-Gilles
Âge: 27
Messages: 212
Pouvoir de réputation: 10
Kawo est sur la bonne voie
Envoyer un message via MSN à Kawo Envoyer un message via Skype™ à Kawo
Par défaut

Ok alors après quelques recherches, vous êtes très peu à avoir ce problème, et pas beaucoup de solutions proposées.

La seule que j'ai trouvé pour l'instant : essaye de charger le module "proxy_html" :

Code:
# a2enmod proxy_html
et relance apache :

Code:
# /etc/init.d/apache2 restart
__________________
Administrateur
Réponse avec citation
Réponse

Liens sociaux

Tags
apache, debian, debian etch, etch, rails, redmine, ruby, subversion, svn


Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non

Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[TUTORIAL] Installation de Redmine avec Apache, le tout sur une Debian Etch Kawo Administration de serveurs web 73 13/02/2010 07h01
Parallélisation de taches dans un traitement par lots georges.lauret Administration de serveurs Windows 2000/2003 8 21/08/2008 20h50


Fuseau horaire GMT +2. Il est actuellement 14h40.


Édité par : vBulletin® version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone