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 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 Subversion installeren.
- sudo apt-get install subversion libapache2-svn
- 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 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 Schakel de LDAP-authenticatiemodule in.
- sudo a2enmod authnz_ldap
- 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 Start de Apache-webserver opnieuw.
- sudo /etc/init.d/apache2 opnieuw opstarten
- 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 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 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 Machtigingen bijwerken.
- sudo chgrp -R svnusers / trac /
- sudo chmod -R g + w / trac /
- 12 Configureer een admin-gebruiker voor trac.
- trac-admin / trac toestemming toevoegen beheerder TRAC_ADMIN
- 13 Start apache webserver opnieuw
- sudo /etc/init.d/apache2 opnieuw opstarten
- 14Test de trac installatie. Blader naar http: // YOUR_SERVER / trac en voer uw gebruikersnaam en wachtwoord voor uw domein in.
- 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 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 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 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 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