Úvod II.
Pokračování nastavenení subversion (nejen) na CentOS 5.5. V první části jsme nainstalovali a zprovoznili subversion přes protokol http, teď budeme pokračovat s dalším nastavením. Čeká nás rozvržení repozitáře, nastavení přístupů a abych nekrad’, zmíním se tu samozřejmě i o použitých zdrojích.
Rozvržení repozitáře
Strukturu repozitáře si můžete nastavit dle libosti. Už nemůsíte pracovat na serveru – jakmile jste jej jednou rozjeli, lze k němu přistupovat vzdáleně.
Zažité rozvržení je toto:
MyFirstRepo
- branch
- tags
- trunkCo to znamená Branch, Tags a Trunk si můžete přečíst např. na blogu BorBer.com.
Toto rozložení vytvoříme nejprve jako adresářovou strukturu v /tmp a tu pomocí svn import importujeme do našeho repozitáře. Bude se jednat o první změnu, číslo revize se tedy o jedno zvýší. Pomocí přepínače -m zapíšeme i první poznámku.
$ cd /tmp $ mkdir repo $ cd repo $ mkdir branch tags trunk $ svn import /tmp/repo/ file:///var/www/svn/MyFirstRepo/ -m "layout for my first repo" Adding /tmp/repo/trunk Adding /tmp/repo/branch Adding /tmp/repo/tags Committed revision 1. $
Nastavení přístupů (ACL)
ACL je zkratka pro Access Control List, nejen ve světě subversion pomocí těchto pravidel nastavujeme kam kdo může.
ACL se pro SVN nastavuje v konfiguraci webserveru, který se o tento přístup stará (uživatel, který nemá přístup do dané složky poté obdrží chybu 403). V /etc/httpd/conf.d/subversion.conf použijeme direktivu AuthzSVNAccessFile:
AuthzSVNAccessFile /etc/svn/acl-repo.conf
V souboru, který jsme použili pak můžeme nastavovat práva následovně:
[jmeno_repozitare:cesta_v_repozitari] uzivatel = prava
uzivatel je již dříve vytvořený uživatel. prava se používájí r pro čtení, rw pro čtení/zápis nebo prázdné místo pro zakázání přístupu. jmeno_repozitare lze vynechat, je-li tento soubor platný buď pro jeden repozitář nebo globálně pro všechny.
Uživatele můžeme dále rozdělit na skupiny a tak jim hromadně nastavovat práva. Příklad ACL souboru:
[groups] skupina = alice, bob, cecile [MyFirstRepo:/] @skupina = r dude = rw
ACL prakticky
Osobně mám radši praktické příklady, proto jsem si našel chvilku a načrtl (téměř) reálný projekt.
Mějme menší “firmu” se dvěma kmenovými zaměstnanci (int_user_1, int_user_2), kteří můžou měnit vše a dvěma externisty (ext_user_1, ext_user_2), kteří mají přístup pouze do určitých složek. Projekt může mít např. toto rozvržení (interní uživatele mohou všude, externí jen do označených složek):
project
|-- tools (ext. uživatelé)
|-- external
| |-- _projekt_1 (ext_user_1)
| `-- _projekt_2 (ext_user_2)
`-- trunkSoubor s přístupovými právy pak bude vypadat asi takhle:
[groups] int = int_user_1, int_user_2 ext = ext_user_1, ext_user_2 [/] @int = rw @ext = [/tools] @ext = rw [/_projekt_1] ext_user_1 = rw [/_projekt_2] ext_user_2 = rw
Další informace a zdroje
Pěkný dvoudílný seriál, ze kterého jsem vycházel i zde, vyšel na abclinuxu.cz: Jak spravovat software pomocí Subversion.
Přímo na wiki CentOSu lze najít postup pro instalaci (EN), která je s touto téměř totožná.
A samozřejmě nemůžu zapomenou na komunitní dokumentaci Subversion.


Leave a Reply