Quelle est la meilleure pratique pour configurer un dépôt Subversion sur une machine de développement Linux? Les utilisateurs externes doivent pouvoir accéder à un dépôt spécifique, mais à rien d'autre sur la machine. Je sais qu'une réponse est de configurer un dépôt dédié, mais je cherche une solution sur une seule machine : emplacement des dépôts, comptes, procédures de sauvegarde.
Réponses
Trop de publicités?Un des méthodes d'accès les plus populaires à Subversion est via le module Apache. Vous pouvez définir différents droits au niveau du répertoire pour contrôler l'accès. Voir Choisir une configuration de serveur et httpd, le serveur HTTP Apache. Pour l'authentification, je recommande d'utiliser une source d'authentification externe comme Microsoft AD via mod_auth_sspi
.
Si vous avez besoin de combiner des droits, consultez ma réponse pour Comment puis-je faire en sorte que seuls certains dossiers apparaissent pour certains développeurs avec SVN.
Je travaille pour une entreprise d'automatisation de l'infrastructure des opérations informatiques; nous faisons cela tout le temps.
Emplacement du dépôt : Nous utilisons "/srv/svn" par défaut pour stocker tous les dépôts SVN, sauf si un client a une exigence spécifique, par exemple un dépôt existant peut être stocké sur un système de fichiers partagé ReadyNAS.
Comptes : Tous nos clients utilisent LDAP. Soit un serveur OpenLDAP fonctionnant sur un hôte maître, mais parfois Active Directory car certains clients ont un domaine Windows dans leur bureau, que nous pouvons également configurer. Les développeurs ont accès au groupe "SCM" (généralement svn, git ou devel), et au groupe 'deploy'. Ces groupes n'ont que les autorisations pour se connecter et effectuer des activités liées à SCM (c'est-à-dire écrire des commits dans le dépôt en fonction de la possession du groupe), ou effectuer des déploiements d'applications en production.
Procédures de sauvegarde : Nous utilisons svnadmin hotcopy sauf si le client a déjà mis en place quelque chose (généralement svnadmin dump, hein).
svnadmin hotcopy /srv/svn /srv/svn_backups/$(date +%Y%m%d)
Pour accéder au dépôt, c'est généralement simple svn + ssh. Certains clients ont déjà une configuration Apache, mais pas beaucoup. Je recommande SSH. Les développeurs publient leurs clés ssh publiques et tout va bien. Il n'y a que peu ou pas de maintenance avec la gestion des utilisateurs LDAP (le seul moyen de procéder).
Je recommanderais de consulter le chapitre sur la configuration du serveur dans le livre sur la subversion. Il fait des suggestions sur quelle configuration est plus appropriée pour votre utilisation.
Pour ce que ça vaut, mettre en place un dépôt en utilisant le démon svn autonome est très simple. La chose ennuyeuse est la gestion des droits des utilisateurs.
J'ai un article de blog qui décrit les étapes nécessaires pour mettre en place et initier un serveur Subversion basé sur Linux afin de maintenir des dépôts de code, etc.
Fondamentalement, les étapes sont les suivantes:
- Téléchargez le tarball Subversion.
- Dézippez et installez Subversion.
- Corrigez les problèmes d'installation qui surviennent lors de l'exécution de
./configure
, le cas échéant. - Créez le dépôt Subversion en utilisant
svnadmin create
. - Modifiez le fichier de configuration du dépôt à l'aide de votre éditeur de texte préféré.
- Faites de même avec le fichier de mot de passe.
- Importez votre code, vos projets, etc. dans le dépôt en utilisant
svn import
. - Démarrez le serveur en tant que démon, par exemple
svnserve -d
. Il est également possible de le faire démarrer automatiquement lors du redémarrage. - Commencez à l'utiliser en utilisant des commandes Subversion standard pour par exemple vérifier, valider, sauvegarder, etc...