Comment installer le contrôle de source subversion sur le serveur Ubuntu 10.04 avec l'authentification LDAP sur le répertoire actif. Il montre également comment installer trac (une vue Web dans votre dépôt Subversion) et comment créer un script qui sauvegarde automatiquement le référentiel à intervalles réguliers.
Pas
- 1 Installez le serveur Ubuntu. Visitez le site http://www.ubuntu.com et téléchargez le serveur Ubuntu 10.04 LTS. Gravez le fichier ISO téléchargé sur CD et installez-le sur votre PC de rechange. Pendant l'installation, sélectionnez LAMP et OpenSSH.
- 2 Installez subversion.
- sudo apt-get install subversion libapache2-svn
- 3 Créez un nouveau référentiel (vide).
- sudo svnadmin create / svn
Alternativement, si vous souhaitez stocker le référentiel de subversion sur un autre lecteur, vous pouvez entrer quelque chose comme / media / disk2 / svn au lieu de / svn
- 4 Configurez l'accès Web au référentiel.
- sudo vim /etc/apache2/mods-enabled/dav_svn.conf
Ensuite, collez les éléments suivants et remplacez soigneusement tous les éléments commençant par YOUR_ avec les propriétés appropriées pour votre répertoire actif.
<emplacement svn> DAV svn SVNPath / svn # Utilisez l'authentification LDAP sur un répertoire actif AuthName "Entrez le nom d'utilisateur et le mot de passe de votre domaine" AuthType De base AuthBasicProvider ldap AuthLDAPBindDN "CN = YOUR_USER, OU = - Comptes système, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC" AuthLDAPBindPassword "VOTRE MOT DE PASSE" AuthLDAPURL "ldap: // YOUR_DOMAIN_CONTROLLER: 389 / ou = YOUR_OU, dc = YOUR_DC, dc = YOUR_DC? samAccountName?" #exiger un utilisateur valide AuthLDAPGroupAttributeIsDN sur exiger ldap-groupe CN = Développement de logiciel, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC emplacement>
- 5 Activer le module d'authentification LDAP.
- sudo a2enmod authnz_ldap
- 6 Configurez les autorisations.
- sudo addgroup svnusers
- administrateur de sudo adduser svnusers
- sudo adduser www-data svnusers
- sudo chgrp -R svnusers / svn
- sudo chmod -R g + w / svn
- 7 Redémarrez le serveur Web Apache.
- sudo /etc/init.d/apache2 restart
- 8Test l'accès au référentiel. Accédez à http: // YOUR_SERVER / svn Une installation réussie doit demander vos informations d'identification de domaine, puis afficher: - svn - Révision 0: / Powered by Subversion version 1.6.6 (r40053).
- 9 Installez trac.
- sudo apt-get installer trac libapache2-mod-python libapache2-mod-python-doc
- cd /
- sudo trac-admin trac initenv
Répondre aux questions suivantes:
Nom du projet [Mon projet]> VOTRE PROJET
Chaîne de connexion à la base de données [sqlite: db / trac.db]>
Type de référentiel [svn]>
Chemin d'accès au référentiel [/ path / to / repos]> / svn
- 10 Configurer trac
- sudo vim /etc/apache2/httpd.conf
Insérez l'extrait suivant: -
<emplacement trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv / trac #PythonOption TracUriRoot / trac AuthName "Entrez le nom d'utilisateur et le mot de passe de votre domaine" AuthType De base AuthBasicProvider ldap AuthLDAPBindDN "CN = YOUR_USER, OU = OU = VOTRE_OU, DC = VOTRE_DC, DC = VOTRE_DC" AuthLDAPBindPassword "VOTRE MOT DE PASSE" AuthLDAPURL "ldap: // YOUR_AD_SERVER: 389 / ou = YOUR_OU, dc = YOUR_DC, dc = YOUR_DC? samAccountName?" #exiger un utilisateur valide AuthLDAPGroupAttributeIsDN sur exiger ldap-groupe CN = Développement de logiciel, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC emplacement>
- 11 Mettre à jour les autorisations
- sudo chgrp -R svnusers / trac /
- sudo chmod -R g + w / trac /
- 12 Configurez un utilisateur admin pour trac.
- permission trac-admin / trac ajouter administrateur TRAC_ADMIN
- 13 Redémarrez le serveur Web apache
- sudo /etc/init.d/apache2 restart
- 14Tester l'installation du trac. Accédez à http: // YOUR_SERVER / trac, entrez votre nom d'utilisateur et votre mot de passe pour votre domaine.
- 15 Montez un système distant comme emplacement de sauvegarde. Consultez l'article en bas pour savoir comment monter un partage Windows sur un serveur Ubuntu.
- 16 Créez un script de sauvegarde complet. Ce script va vider l'intégralité du référentiel à l'emplacement de sauvegarde en tant que fichier de vidage unique.
- sudo su (basculer vers root)
- mkdir / root / scripts && cd / root / scripts (créer un répertoire pour les scripts et y changer)
- vi svn-full-backup.sh (modifiez le script de sauvegarde et ajoutez les éléments suivants)
#! / bin / sh # Vider le dépôt svn entier dans / tmp svnadmin déverser /svn > /tmp/svn-full-backup.dump # Supprimer la sauvegarde précédente rm -F /mnt/sauvegarde/svn-full-backup.dump # Copiez le nouveau fichier de sauvegarde dans l'emplacement de sauvegarde cp /tmp/svn-full-backup.dump /mnt/sauvegarde/svn-full-backup.dump
- "Ecrire et quitter" (utiliser : wq comme décrit précédemment)
- chmod + x svn-full-backup.sh (Rendre le script exécutable)
- ./svn-full-backup.sh (Lancer l'opération de sauvegarde)
- 17 Créez un script de sauvegarde incrémentielle. Ce script videra toutes les révisions depuis la dernière sauvegarde incrémentielle dans un autre fichier. Tous les fichiers créés spécifient la plage des révisions enregistrées.
- vi svn-full-backup.sh (modifiez le script de sauvegarde incrémentielle et ajoutez les éléments suivants)
#! / usr / bin / perl utiliser strict utiliser des avertissements; mon $ repo = '/ svn'; mon $ local_dir = '/ tmp'; mon $ savedir = '/ mnt / backup / incremental'; mon $ last_saved_file = $ savedir.'/last_saved.txt'; # lire la dernière révision enregistrée du fichier ouvrir(LAST_SAVED, '<', $ last_saved_file); mon $ last_saved = <LAST_SAVED>; chomp $ last_saved; Fermer(LAST_SAVED); # être informé de la dernière révision en cours (tête) mon $ tête = 'svnlook le plus jeune $ repo'; chomp $ tête; # bien sûr, si la tête n'est pas plus jeune que la dernière révision enregistrée # il est inutile de continuer la sauvegarde si ($ last_saved == $ tête) Sortie(); # si le dernier enregistrement est 1000 et que la tête est 1023, nous voulons la sauvegarde # de 1001 à 1023 mon $ de = $ last_saved + 1; mon $ à = $ tête; # le nom du fichier de sauvegarde ressemble à svn-01001_01023.svndump mon $ dumpfile = sprintf( '/svn-%05u_%05u.svndump', $ de, $ à ); mon $ local_dump_file = $ local_dir.$ dumpfile; mon Commande $ = sprintf( 'svnadmin dump -q -r% u:% u --incremental% s>% s', $ de, $ à, $ repo, $ local_dump_file ); système(Commande $); si (grep /^ Numéro de révision: $ à/, 'grep --texte ^ Numéro de révision: $ local_dump_file') ouvrir(LAST_SAVED, '>', $ last_saved_file); imprimer LAST_SAVED $ à, "\ n"; Fermer(LAST_SAVED); # ici nous compressons le fichier de vidage système('gzip'.$ local_dump_file); # ajoutons le md5sum du fichier au fichier MD5SUMS stockant md5sums de # toutes les sauvegardes Subversion chdir($ local_dir); utilisez File :: Basename; système('md5sum'.basename($ local_dump_file).'.gz >>'.$ savedir.'/ MD5SUMS'); mon $ mv_command = sprintf( 'mv% s% s', $ local_dump_file.".gz", $ savedir.$ dumpfile.'.gz' ); système($ mv_command);
- "Ecrire et quitter" (: wq comme ci-dessus)
- chmod + x svn-inc-backup.sh (Rendre le script exécutable)
- ./svn-inc-backup.sh (Lancer l'opération de sauvegarde incrémentielle)
- 18 Planifiez les scripts de sauvegarde. Editez la table cron pour planifier les deux scripts à exécuter. La sauvegarde incrémentielle est exécutée tous les soirs à 1 heure du matin. La sauvegarde complète est exécutée le 1er jour du mois à 2 heures du matin.
- crontab -e
0 1 * * * /root/scripts/svn-inc-backup.sh 0 2 1 * * /root/scripts/svn-full-backup.sh
- Quittez l'éditeur en utilisant CTRL-X
- 19 Testez la restauration de votre sauvegarde! Sur une autre machine, effectuez la même configuration de subversion. Exécutez la commande suivante pour importer le fichier de vidage dans votre référentiel vide.
- svnadmin load / svn </mnt/backup/svn-full-backup.dump