GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit SVN server na CentOS

Tento tutoriál vysvětluje, jak nastavit a používat server úložiště SVN na CentOS. Než začnu, dovolte mi vysvětlit, co vlastně SVN představuje a k čemu slouží. SVN je ve skutečnosti zkratka SubVersion, kterou vytvořil vývojář softwaru Apache. Umožňuje vám vytvářet a udržovat vlastní úložiště a vyhrazenému uživateli poskytuje podrobná přístupová práva.

Je velmi efektivní pro řízení verzování souborů, dokumentů nebo složek. Je to velmi užitečné pro jakoukoli skupinu nebo tým, který má v úmyslu zahájit vlastní softwarové projekty.

1. Předběžná poznámka

Pro tento tutoriál používám CentOS 6.4 v 32bitové verzi. Konečný výsledek vám ukáže, jak může vyhrazený klient spravovat přístup k úložišti SVN pomocí jakékoli platformy operačního systému.


2. Instalace SVN

Abychom mohli začít s novým SVN serverem, musíme nainstalovat určité balíčky. Související balíčky jsou apache httpd, mod_dav_svn a subversion. Pro tento proces je potřeba balíček HTTPD jako služba webového serveru.

Protože tento tutoriál používá operační systém CentOS, převezmeme balíčky z úložiště yum. Pokud chcete, můžete httpd nahradit jinými balíčky, jako je nginx, lighttpd nebo jakoukoli známou službou webového serveru. Níže jsou kroky:

ifconfig
[[email protected] ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:61:E4:88
inet addr:192.168.43.101 Bcast:192.168.43.255 Maska:255.255.255.0
inet6 addr:fe80::a00:27ff:fe61:e488/64 Rozsah:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4640 errors:0 zahozené:0 překročení:0 snímek:0
TX pakety:6845 chyby:0 zahozené:0 překročení:0 dopravce:0
kolize:0 txqueuelen:1000
RX bajtů:444461 (434,0 KiB ) TX bytes:549473 (536,5 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr:::1/128 Rozsah:Host
UP LOOPBACK RUNNING MTU:16436 Metric :1
RX pakety:2125 chyby:0 zahozené:0 přetečení:0 snímek:0
TX pakety:2125 chyby:0 zahozené:0 přetečení:0 dopravce:0
kolize:0 txqueuelen :0
RX bytes:186888 (182,5 KiB) TX bytes:186888 (182,5 KiB)
yum install -y httpd
[[email protected] ~]# yum install -y httpd
Načtené pluginy:refresh-packagekit, security
Repositář 'OEL64' nemá v konfiguraci název, používá id
Nastavení Instalační proces
Řešení závislostí
--> Spuštění kontroly transakce
---> Balíček httpd.i686 0:2.2.15-26.0.1.el6 bude nainstalován
--> Dokončené řešení závislostí
Závislosti vyřešeny
==================================================================================================================
Velikost úložiště verze archivu balíčku
================================================================================================================
Instalace:
httpd i686 2.2. 15-26.0.1.el6 OEL64 825 k
Přehled transakcí
=================================================================================================================
Instalovat 1 balíček(y)
Celková velikost stahování:825 k
Velikost instalace:2,8 M
Stahování balíčků:
Spuštění rpm_check_debug
Spuštění testu transakce
Test transakce byl úspěšný
Spuštěn Transakce
Instalace:httpd-2.2.15-26.0.1.el6.i686 1/1
Ověřování:httpd-2.2.15-26.0.1.el6.i686 1/1
Instalováno:
httpd.i686 0:2.2.15-26.0.1.el6
Dokončeno!
yum install -y subversion
[[email protected] ~]# yum install -y subversion
Načtené pluginy:refresh-packagekit, security
Repositář 'OEL64' nemá v konfiguraci název, používá se id
Nastavení Instalační proces
Řešení závislostí
--> Spuštění kontroly transakce
---> Balíček subversion.i686 0:1.6.11-7.el6 bude nainstalován
--> Dokončeno Řešení závislostí
Závislosti vyřešeny
==================================================================================================================
Velikost úložiště verze archivu balíčku
================================================================================================================
Instalace:
subversion i686 1.6. 11-7.el6 OEL64 2,2 M
Přehled transakcí
=================================================================================================================
Instalovat 1 balíček(y)
Celková velikost stahování:2,2 M
Velikost instalace:11 M
Stahování balíčků:
Spuštění rpm_check_debug
Spuštění testu transakce
Test transakce byl úspěšný
Spuštěn Transakce
Instalace:subversion-1.6.11-7.el6.i686 1/1
Ověřování:subversion-1.6.11-7.el6.i686 1/1
Instalováno:
subversion.i686 0:1.6.11-7.el6
Dokončeno!
yum install -y mod_dav_svn
[[email protected] ~]# yum install -y mod_dav_svn
Načtené pluginy:refresh-packagekit, security
Repozitáři 'OEL64' chybí název v konfiguraci, používá se id
Nastavení Instalační proces
Řešení závislostí
--> Spuštění kontroly transakce
---> Balíček mod_dav_svn.i686 0:1.6.11-7.el6 bude nainstalován
--> Dokončeno Řešení závislostí
Závislosti vyřešeny
==================================================================================================================
Velikost úložiště verze archivu balíčku
================================================================================================================
Instalace:
mod_dav_svn i686 1.6. 11-7.el6 OEL64 79 k
Přehled transakcí
=================================================================================================================
Instalovat 1 balíček(y)
Celková velikost stahování:79 kB
Velikost instalace:161 k
Stahování balíčků:
Spuštění rpm_check_debug
Spuštění testu transakce
Test transakce byl úspěšný
Spuštěn Transakce
Instalace:mod_dav_svn-1.6.11-7.el6.i686 1/1
Ověřování:mod_dav_svn-1.6.11-7.el6.i686 1/1
Instalováno:
mod_dav_svn.i686 0:1.6.11-7.el6
Dokončeno!


3. Konfigurace SVN

Skvělé, nyní je instalační část hotová. Dále se přesuneme kupředu v konfigurační části. Nejprve vytvořte vyhrazený adresář pro použití úložiště SVN. Toto je volitelný proces, ale je to dobrý postup při implementaci pro větší skupinu. Níže jsou kroky:

mkdir /data/svn

Nyní vytvoříme náš první adresář úložiště, pojmenuji ho repo1 . Protože klient bude mít později přístup k úložišti prostřednictvím prohlížeče nebo klientských nástrojů SVN, udělíme vlastnictví adresáře společnosti Apache, protože je vlastníkem služby webového serveru. Níže jsou kroky:

svnadmin create /data/svn/repo1
chown -R apache:apache /data/svn/repo1

Po dokončení si všimnete, že několik souvisejících složek a souborů bude ve výchozím nastavení vytvořeno v našem novém adresáři úložiště.

cd /data/svn/repo1
ls
[[email protected] repo1]# ls
conf db formát zavěšuje zámky README.txt


Nyní upravíme konfigurační soubor tak, aby vyhovoval našim požadavkům. Nejprve upravíme konfigurační soubor svnserver.conf tak, aby akceptoval související oprávnění, která přidělenému uživateli přidělíme. Níže jsou kroky:

cd conf/
ls
[[email protected] conf]# ls
authz passwd svnserve.conf
vi svnserve.conf
[obecné]
anon-access =žádný
auth-access =zápis
password-db =passwd
authz-db =authz

Poté vytvořte nový soubor s názvem passwd který bude obsahovat seznam uživatelů pro úložiště SVN. Níže jsou kroky:

htpasswd -c /data/svn/repo1/conf/passwd jay
[[email protected] conf]# htpasswd -c /data/svn/repo1/conf/passwd jay
Nové heslo:
Znovu zadejte nové heslo:
Přidání hesla pro uživatele jay
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA

Hotovo, úspěšně jsme vytvořili uživatele pro použití úložiště SVN. Vytvořme 2 další uživatele pro přístup k SVN úložišti. Níže jsou kroky:

htpasswd /data/svn/repo1/conf/passwd fikri
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd fikri
Nové heslo:
Znovu zadejte nové heslo:
Přidání hesla pro uživatele fikri
htpasswd /data/svn/repo1/conf/passwd farid
[[email protected] conf]# htpasswd /data/svn/repo1/conf/passwd farid
Nové heslo:
Znovu zadejte nové heslo:
Přidání hesla pro uživatele farid
[[email protected] conf]# cat passwd
jay:14hCNCmBZY/qA
fikri:/hlooqJMfYLkw
farid:P7Zvu6B3HyFGo


Hotovo, nyní jsou uvedeni 3 uživatelé pro použití v repozitáři SVN. Pro tento postup bych rád ukázal, jak můžeme omezit oprávnění uživatele. Pojďme přidělit oprávnění pro přístup k úložišti repo1. K tomu musíme upravit konfigurační soubor authz. Níže jsou kroky:

vi authz
[repo1:/]
farid =r
fikri =rw
* =

Na základě výše uvedené konfigurace jsme nastavili různá oprávnění pro 3 uživatele, které jsme vytvořili dříve. Uživateli FARID jsme přidělili oprávnění POUZE ČTĚTE, FIKRI oprávnění ČTĚTE ZÁPIS a JAY nebo jiným jsme přidělili oprávnění bez oprávnění. Znamená to, že později při testování vám ukážu, že uživatel JAY nebude moci zobrazit žádné soubory v úložišti repo1.

Nyní upravme konfigurační soubor služby HTTPD.

vi /etc/httpd/conf/httpd.conf

Zkontrolujte, zda existuje následující řádek pro zahrnutí externích konfiguračních souborů do souboru httpd.conf. Pokud neexistuje, přidejte jej na konec souboru.

[.....]
Zahrnout conf.d/*.conf
[.....]

Dále přejdeme do adresáře conf.d, kde provedeme nějaké změny v souvisejících konfiguračních souborech. Všimnete si, že již existuje soubor subversion.conf. Upravte soubor, aby bylo úložiště dostupné pro prohlížení v prohlížečiNíže jsou kroky:-

cd /etc/httpd/conf.d/
ls
[[email protected] conf.d]# ls
mod_dnssd.conf README subversion.conf welcome.conf
vi subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


DAV svn
SVvn/data/s repo1
Authtype Basic
AuthName "My Repository"
AuthzSVNAccessFile /data/svn/repo1/conf/authz
AuthUserFile /data/svn/repo1/conf/passwd
Vyžadovat platného uživatele

První dva řádky načtou modul Apache SVN, další řádky definují, že URL /repo1 ukazuje na náš vytvořený repozitář.

Pomocí AuthzSVNAccessFile jsme také nastavili, aby měli konkrétní uživatelé oprávnění ke čtení/zápisu na konkrétní položky v úložišti. Seznam uživatelů bude převzat ze souboru /data/svn/repo1/conf/passwd.

Nyní restartujte HTTPD server, aby se načetly provedené konfigurační změny.

restart služby httpd
[[email protected] conf.d]# restart služby httpd
Zastavování httpd:[ OK ]
Spouštění httpd:[ OK ]


4. Fáze testování SVN

Pojďme zkontrolovat, zda konfigurace, kterou jsme provedli, splňuje účel nebo ne. Pro testovací fázi použiji 2 různé klientské stroje. Budu používat Microsoft Windows a Linux CentOS 6.4 Desktop.

Nejprve přejdu na počítač se systémem Linux CentOS 6.4 a zkontroluji úložiště v místním systému. Jako linuxový klient potřebujeme nainstalovat balíček subversion, abychom se mohli připojit k úložišti SVN.

yum install -y subversion 
[[email protected] ~]# yum install -y subversion 
Načtené pluginy:refresh-packagekit, security
Repositář 'OEL64' nemá v konfiguraci název, používá se id
Nastavení Instalační proces
Řešení závislostí
--> Spuštění kontroly transakce
---> Balíček subversion.i686 0:1.6.11-7.el6 bude nainstalován
--> Dokončeno Řešení závislostí
Závislosti vyřešeny
==================================================================================================================
Velikost úložiště verze archivu balíčku
================================================================================================================
Instalace:
subversion i686 1.6. 11-7.el6 OEL64 2,2 M
Přehled transakcí
=================================================================================================================
Instalovat 1 balíček(y)
Celková velikost ke stažení:2,2 M
Velikost nainstalované:11 M
Stahování balíčků:
--------------------- -------------------------------------------------- ---------------------------------------
Celkem 70 MB/s | 2,2 MB 00:00
Spuštění rpm_check_debug
Spuštění testu transakce
Test transakce byl úspěšný
Spuštění transakce
Instalace:subversion-1.6.11-7.el6.i686 1/ 2
Ověřování:subversion-1.6.11-7.el6.i686 2/2
Instalováno:
subversion.i686 0:1.6.11-7.el6
Dokončeno!

mkdir repo_client
svn co http://192.168.43.101/repo1 repo_client
[[e-mail chráněný] ~]# mkdir repo_client
[[e-mail chráněný] ~]# svn co http://192.168.43.101/repo1 repo_client
Sféra ověřování: Můj repozitář
Heslo pro 'fikri':
----------------------------------------------- ------------------------
POZOR! Vaše heslo pro sféru ověřování:
 Můj repozitář
lze uložit na disk pouze nešifrovaně! Je doporučeno nakonfigurovat
váš systém tak, aby Subversion mohl ukládat hesla zašifrovaná,
je-li to možné. Podrobnosti naleznete v dokumentaci.
Budoucímu výskytu tohoto varování se můžete vyhnout nastavením hodnoty
možnosti 'store-plaintext-passwords' na 'yes' nebo 'no' v
'/root/.subversion/ servery'.
-------------------------------------------- ----------------------------
Ukládat heslo nešifrované (ano/ne)? ano
Zkontrolována revize 0.
[[e-mail chráněno] ~]# cd repo_client/
[[e-mail chráněn] repo_client]# ls -a
. ... .svn

Vynikající! Podařilo se nám zkontrolovat úložiště z našeho serveru SVN pomocí uživatele fikri. Nyní, abychom zkontrolovali, zda má tento uživatel oprávnění ČÍT a ZÁPIS, vytvoříme složku v adresáři úložiště.

cd repo_client/
svn mkdir first_dir

A pak odevzdejte změnu zpět do úložiště:

svn commit -m "Moje první složka"

Uvidíte toto:

Zadaná revize 1.

Což znamená, že náš závazek byl úspěšný.


Skvělá práce! Podařilo se nám vytvořit složku v adresáři úložiště a odevzdat ji.

Nyní to otestujeme na počítači se systémem Microsoft Windows. Procházejte adresu URL úložiště pomocí prohlížeče firefox. K otestování můžete použít libovolný ze svých oblíbených prohlížečů. Po zadání adresy URL http://192.168.43.101/repo1 do pole prohlížeče se zobrazí autorizační okno podobné tomu níže:

Přihlaste se pomocí uživatele JAY. Předpokládám, že tento uživatel nebude mít přístup ke stránce, protože není členem privilegované skupiny.

Pěkné, nyní uděláme závěrečný test pro tento tutoriál. Použijme stroj Microsoft Windows jako SVN klienta. K tomu musíme nainstalovat klientský software SVN, v tomto případě použiji TortoiseSVN . Můžete si jej stáhnout zde nebo použít kteréhokoli ze svých známých klientů SVN.

Po instalaci vytvořte na svém počítači se systémem Windows novou složku a pojmenujte ji jako testSVN.


Poté klikněte pravým tlačítkem na složku a všimnete si, že nyní existují odkazy na SVN CheckOut (pokud odkazy nevidíte, restartujte Windows). Pokračujte kliknutím na "SVN Checkout".

Po kliknutí se zobrazí vyskakovací okno podobné tomu níže. Do pole URL zadejte úložiště serveru SVN a klikněte na OK.

Zobrazí se vyskakovací okno, které vás požádá o zadání uživatelského jména a hesla pro ověření. V tomto případě použijeme pro pokračování uživatele FARID.

Po dokončení se ve vyskakovacím okně zobrazí, že platba v úložišti SVN byla dokončena. Odtud můžeme usoudit, že uživatel FARID má oprávnění ČÍST z úložiště.

Všimnete si, že složka, která byla dříve vytvořena uživatelem FIKRI, existuje ve vašem adresáři testSVN.

K dokončení testu. Pojďme otestovat, že uživatel FARID by měl mít přístup POUZE PRO ČTENÍ. Chcete-li to provést, přejděte do složky FIRST_DIR a vytvořte další složku, říkám jí SECOND_DIR

Po vytvoření klikněte pravým tlačítkem na složku a najeďte na TortoiseSVN, uvidíte, že je zde uvedeno několik možností. Chcete-li pokračovat, klikněte na Přidat knoflík. Toto tlačítko přidá složku, kterou jsme vytvořili, do místního úložiště svn.

Zobrazí se vyskakovací okno podobné tomu níže, pokračujte kliknutím na OK.

Po dokončení se zobrazí vyskakovací zpráva jako níže. Nyní jste úspěšně vytvořili složku ve vašem klientském úložišti.

I když byla složka úspěšně vytvořena a přidána lokálně, ještě není synchronizována se serverem SVN, proto ostatní uživatelé z jiných počítačů neuvidí složku, kterou jsme právě vytvořili. Uložte a potvrďte složku nyní. Chcete-li to provést, klikněte pravým tlačítkem na složku a klikněte na SVN Commit podle níže uvedeného snímku obrazovky.


Zobrazí se vyskakovací okno jako níže, které vás požádá o potvrzení několika podrobností. Zadejte libovolný volitelný komentář a pokračujte kliknutím na OK.

Zobrazí se autorizační pole s žádostí o přihlašovací uživatelské jméno. Zadejte jako uživatel FARID a pokračujte.

Jakmile budete hotovi, zobrazí se vám chyba, že máte zakázáno provádět změny. To, co jsme očekávali jako uživatel farid, má pouze oprávnění pouze pro čtení.

Gratulujeme! Nyní jsme nastavili náš první SVN server a úspěšně nakonfigurovali správná oprávnění pro určitá uživatelská omezení.


Cent OS
  1. Jak nastavit SysLog Server na CentOS 7 / RHEL 7

  2. Jak nastavit replikaci MySQL na CentOS

  3. Jak nastavit NTP server v CentOS?

  1. Jak nastavit SFTP server na CentOS

  2. Jak nastavit server NFS na CentOS 7 / RHEL 7

  3. Jak nastavit proxy server squid na CentOS/RHEL 7

  1. Jak nainstalovat a nastavit Mumble Server {Murmur} na Linux CentOS 7

  2. Jak nastavit FTP server s VSFTPD na CentOS 7

  3. Jak nastavit SVN Server na CentOS, RHEL a Fedora