Hoe installeer ik subversie bronbesturing op Ubuntu 10.04 server met LDAP-authenticatie in actieve map. Het laat ook zien hoe te installeren trac (een webgebaseerde weergave in uw subversion-repository) en hoe u een script kunt maken dat automatisch met regelmatige tussenpozen een back-up van de repository maakt.

Stappen

  1. 1 Installeer de Ubuntu-server. Ga naar http://www.ubuntu.com en download Ubuntu 10.04 LTS-server. Brand de gedownloade ISO naar CD en installeer op uw reserve-pc. Selecteer tijdens de installatie LAMP en OpenSSH.
  2. 2 Subversion installeren.
    • sudo apt-get install subversion libapache2-svn
  3. 3 Maak een nieuwe (lege) repository.
    • sudo svnadmin create / svn

    Als u de subversion-repository op een ander station wilt opslaan, kunt u als alternatief iets invoeren / Media / disk2 / svn in plaats van / svn

  4. 4 Configureer webtoegang tot de repository.
    • sudo vim /etc/apache2/mods-enabled/dav_svn.conf

    Plak vervolgens het volgende en vervang zorgvuldig alle elementen vanaf YOUR_ met de juiste eigenschappen voor uw actieve map.

     <plaats svn> DAV svn SVNPath / svn # Gebruik LDAP auth tegen een actieve map AuthName "Voer uw gebruikersnaam en wachtwoord voor uw domein in" AuthType basis- AuthBasicProvider ldap AuthLDAPBindDN "CN = YOUR_USER, OU = - Systeemaccounts, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC" AuthLDAPBindPassword "JE WACHTWOORD" AuthLDAPURL "Ldap: // YOUR_DOMAIN_CONTROLLER:? 389 / ou = YOUR_OU, dc = YOUR_DC, dc = YOUR_DC samAccountName" #require valid-user AuthLDAPGroupAttributeIsDN op vereisen LDAPgroep CN = Softwareontwikkeling, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC plaats> 
  5. 5 Schakel de LDAP-authenticatiemodule in.
    • sudo a2enmod authnz_ldap
  6. 6 Rechten configureren.
    • sudo addgroup svnusers
    • sudo adduser beheerder svngebruikers
    • sudo adduser www-data svnusers
    • sudo chgrp -R svnusers / svn
    • sudo chmod -R g + w / svn
  7. 7 Start de Apache-webserver opnieuw.
    • sudo /etc/init.d/apache2 opnieuw opstarten
  8. 8Test de toegang tot de repository. Blader naar http: // YOUR_SERVER / svn Een geslaagde installatie vraagt ​​om uw inloggegevens voor het domein en laat vervolgens zien: svn - Revisie 0: / Aangedreven door Subversion versie 1.6.6 (r40053).
  9. 9 Installeer trac.
    • sudo apt-get install trac libapache2-mod-python libapache2-mod-python-doc
    • cd /
    • sudo trac-admin trac initenv

    Beantwoord de volgende vragen:

    Projectnaam [Mijn project]> JOUW PROJECT

    Databaseverbindingsreeks [sqlite: db / trac.db]>

    Repositorytype [svn]>

    Pad naar repository [/ pad / naar / repos]> / svn

  10. 10 Trac configureren
    • sudo vim /etc/apache2/httpd.conf

    Voeg het volgende fragment toe: -

     <plaats trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv / trac #PythonOption TracUriRoot / trac AuthName "Voer uw gebruikersnaam en wachtwoord voor uw domein in" AuthType basis- AuthBasicProvider ldap AuthLDAPBindDN "CN = YOUR_USER, OU OU = = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC" AuthLDAPBindPassword "JE WACHTWOORD" AuthLDAPURL "Ldap: // YOUR_AD_SERVER:? 389 / ou = YOUR_OU, dc = YOUR_DC, dc = YOUR_DC samAccountName" #require valid-user AuthLDAPGroupAttributeIsDN op vereisen LDAPgroep CN = Softwareontwikkeling, OU = YOUR_OU, DC = YOUR_DC, DC = YOUR_DC plaats> 
  11. 11 Machtigingen bijwerken.
    • sudo chgrp -R svnusers / trac /
    • sudo chmod -R g + w / trac /
  12. 12 Configureer een admin-gebruiker voor trac.
    • trac-admin / trac toestemming toevoegen beheerder TRAC_ADMIN
  13. 13 Start apache webserver opnieuw
    • sudo /etc/init.d/apache2 opnieuw opstarten
  14. 14Test de trac installatie. Blader naar http: // YOUR_SERVER / trac en voer uw gebruikersnaam en wachtwoord voor uw domein in.
  15. 15 Monteer een extern systeem als een back-uplocatie. Zie het gerelateerde artikel onderaan voor het koppelen van een Windows-share op een Ubuntu-server.
  16. 16 Maak een volledig back-up script. Dit script dumpt de volledige repository naar de back-uplocatie als een enkel dumpbestand.
    • sudo su (overschakelen naar root)
    • mkdir / root / scripts && cd / root / scripts (maak een map voor scripts en wijzig deze)
    • vi svn-full-backup.sh (bewerk het back-up script en voeg het volgende toe)


     #! / Bin / sh # Dump de volledige svn-repository naar / tmp svnadmin stortplaats /svn > /tmp/svn-full-backup.dump # Verwijder de vorige back-up rm -f /mnt/backup/svn-full-backup.dump # Kopieer het nieuwe back-upbestand naar de back-uplocatie cp /tmp/svn-full-backup.dump /mnt/backup/svn-full-backup.dump 
    • "Write and quit" (gebruiken : wq zoals eerder beschreven)
    • chmod + x svn-full-backup.sh (Maak het script uitvoerbaar)
    • ./svn-full-backup.sh (Start de back-up operatie)
  17. 17 Maak een incrementeel back-up script. Dit script dumpt alle revisies sinds de laatste incrementele back-up naar een ander bestand. Alle gemaakte bestanden specificeren het aantal revisies dat is opgeslagen.
    • vi svn-full-backup.sh (bewerk het incrementele back-up script en voeg het volgende toe)


     #! / Usr / bin / perl gebruik strikt; gebruik waarschuwingen; mijn $ repo = '/ SVN'; mijn $ local_dir = '/ Tmp'; mijn $ savedir = '/ Mnt / backup / Incremental'; mijn $ last_saved_file = $ savedir.'/last_saved.txt'; # lees de laatst opgeslagen revisie uit het bestand Open(LAST_SAVED, '<', $ last_saved_file); mijn $ last_saved = <LAST_SAVED>; Chomp $ last_saved; dichtbij(LAST_SAVED); # word geïnformeerd over de huidige laatste revisie (hoofd) mijn $ head = 'svnlook jongste $ repo'; Chomp $ head; # natuurlijk, als het hoofd niet jonger is dan de laatst opgeslagen revisie # het is nutteloos om door te gaan met back-uppen als ($ last_saved == $ head)  Uitgang();  # als de laatst opgeslagen 1000 is en het hoofd 1023 is, willen we de back-up # van 1001 tot 1023 mijn $ van = $ last_saved + 1; mijn $ om = $ head; # de bestandsnaam van de back-up ziet eruit als svn-01001_01023.svndump mijn $ dumpfile = sprint( '/svn-%05u_%05u.svndump', $ van, $ om ); mijn $ local_dump_file = $ local_dir.$ dumpfile; mijn $ command = sprint( 'svnadmin dump -q -r% u:% u --incremental% s>% s', $ van, $ om, $ repo, $ local_dump_file ); systeem($ command); als (grep /^ Wijziging-nummer: $ om/, 'grep --tekst ^ Wijziging-nummer: $ local_dump_file')  Open(LAST_SAVED, '>', $ last_saved_file); print LAST_SAVED $ om, "\ n"; dichtbij(LAST_SAVED); # hier comprimeren we het dumpbestand systeem('gzip'.$ local_dump_file); # voeg het md5sum van het bestand toe aan MD5SUMS-bestand met md5sums van # alle Subversion-back-ups chdir($ local_dir); gebruik Bestand :: Basename; systeem('md5sum'.basename($ local_dump_file).'.gz >>'.$ savedir.'/ MD5SUMS');  mijn $ mv_command = sprint( 'mv% s% s', $ local_dump_file.'.gz', $ savedir.$ dumpfile.'.gz' ); systeem($ mv_command); 
    • "Write and quit" (: wq zoals hierboven)
    • chmod + x svn-inc-backup.sh (Maak het script uitvoerbaar)
    • ./svn-inc-backup.sh (Start de incrementele back-upbewerking)
  18. 18 Plan de back-up scripts. Bewerk de cron-tabel om de twee scripts te plannen die moeten worden uitgevoerd. De incrementele back-up wordt elke nacht om 1 uur uitgevoerd. De volledige back-up wordt uitgevoerd op de eerste dag van de maand om twee uur 's morgens.
    • crontab -e


     0 1 * * * /root/scripts/svn-inc-backup.sh 0 2 1 * * /root/scripts/svn-full-backup.sh 
    • Verlaat de editor met CTRL-X
  19. 19 Test het herstellen van uw back-up! Op een andere machine voert u dezelfde subversie-instellingen uit. Voer de volgende opdracht uit om het dumpbestand opnieuw in uw lege repository te importeren.
    • svnadmin load / svn </ mnt/backup/svn-full-backup.dump