ot Vladimir Vitkov(10-03-2008)
reiting (32)
[ dobre ]
[ zle ]
Variant za otpechatvane Disclaimer: Opisanite tehniki v tozi dokument mogat da vi pomognat no ne e zadulzhitelno da sa napulno viarni i izcherpatelni. Ne poemam otgovornost za kakvito i da bilo realni ili nerealni, vredi, polzi, propuski, padnali kushti ili kakvoto i da e proiztichashti ot polzvaneto ili nepolzvaneto na tozi dokument.
Istoriia
- 25.01.2007 - Purva versiia
Tuk shte se postaraia da opisha po kakuv nachin sum nastroil sistema sustoiashta se ot Trac i SVN koiato izpolzvam za upravlenie na proekti.
Originalut
Na bulagarski
In English
Ideiata
Tui kato se zanimavam s mnogo i nai-veche razlichni proekti, stana iasno che imam muzhda ot sistema za upravlenie na proekti. I dokato tova mi se turkaliashe v glavata reshih che shte e dobre ako mozhe da se izpolzva za mnozhestvo proekti s mnozhestvo hora. Pochna se turseneto, kato minah prez dotProject, TikiWiki, Mantis i niakoi drugi. No prosto niakak si ne mi dopadaha. V kraina smetka se spriah na Trac i SVN.
Motivatsiiata
Izbrah kombinatsiiata Trac + SVN po slednite prichini
- Sviknal sum sus SVN puk makar i ot konzola
- Trac se razrabotva otnositelno aktivno
- Veche imah instaliran Python zaradi chast ot sistemata mi
- V samiia Trac ima vgradeno wiki koeto shte se polzva za opisanieto na proektite i dokumentatsiiata
- Ima biletcheta za problemi
- Kup drugi drebolii
Sled vsichko kazano Trac se okaza edno dobro reshenie.
ZHeliazoto
Mashinata na koiato raboti vsichko tova e slednata
Debian Unstable
600 Mhz CPU
256 MB Ram
20G HDD
Vurhu neia rabotiat dosta uslugi: mysql, apache, exim, routing/shaping/nat, dns, dhcp, ntp, ftp, shell, samba (v rezhim na Master Browser) i drugi.
Kato tsialo dosta slabichka mashinka po dneshni standarti, no polezna i gledana s lyuboF
Neobhodim Softuer
Za da mozhe sistemata da raboti kato horata ni triabva sledniiat softuer
- Trac
- subversion
- libneon
- Python
- pysqlite
- python-subversion-bindings
- mod_python
- clearsilver
- xinetd
- drugi drebolii
Kato tsialo nai-lesno e ako si imate debian. Ako e takuv sluchaia protsedurata e predelno prosta
apt-get install trac libapache2-mod-python xinetd
I zapochva veselbata :)
Dopulnitelno kum Python sme instalirali python-setuptools, tracwebadmin, tracaccountmanager.
Razpolozhenie na failovete
Tui kato shte ima niakolko proekta, shte otdelim spetsialno miasto za tsialata sistema. Preporuchitelno e da e na otdelen dial.
Pri men se spriah na direktoriiata /home/projects koiato ima slednata struktura
/home/projects/
/home/projects/trac
/home/projects/trac/project1
/home/projects/trac/project2
... ... ...
/home/projects/svn
/home/projects/svn/project1
/home/projects/svn/project2
... ... ...
Vuzmozhno e Trac i SVN instantsiite da se namirat v direktoriite na proektite no taka se uslozhniava mlko konfiguratsiiata
Sushtinskoto izpulnenie
Suzdaite si direktornata struktura koiato shte vi e udobna:
mkdir -p /home/projects/{trac,svn}
Suzdaite si suotvetnite proekti (tova stava s trac-admin)
trac-admin /home/projects/trac/project1 initenv
SHTe vi budat zadadeni niakolko vuprosa i po tochno: Ime na proekta, Baza danni (sqlite e dobur izbor), tip na hranilishteto za kod, kude se namira samoto hranilishte.
Ogranichenie e che hranilishteto na kod triabva zadulzhitelno da e na sushtata mashina (ne se poddurzhat otdalecheni), no tova mozhe lesno da se zaobikoli s pomoshtta na nfs.
Suzdaite suotvetnite hranilishta za kod (svnadmin)
svnadmin create /home/projects/svn/project1
Promenete pravata na taka suzdadenite direktorii suotvetno na potrebitelia kato koito vurviat Trac sistemata i svn survura
chown -R www-data:www-data /home/projects/trac/project1
chown -R svnserv:svnserv /home/projects/svn/project1
Izpolzvame www-data tui kato pod tozi potrebitel raboti Apache survura. Potrebitelia svnserv sme suzdali predvaritelno kato za domashna direktoriia sme mu zadali /home/projects/svn
Sled kato imame veche suzdadeni proektite vreme e da mozhem da gi pokazhem v brauzur (inache sa bezpolezni).
Trac mozhe da raboti kato samostoiatelen demon (tracd), kato CGI protses (trac.cgi, trac.fcgi) ili v konteksta na Apache (koeto sme i izbrali) s pomoshtta na mod_python.
V konfiguratsiiata na Apache dobaviame
LoadModule python_module modules/mod_python.so
# ili go razreshavame s pomoshtta na distributsiiata si
# s kakvo shte obrabotvame sudurzhanieto
SetHandler mod_python
# tochno s kakvo (trac)
PythonHandler trac.web.modpython_frontend
# koia informatsiia tochno shte servirame
PythonOption TracEnvParentDir /home/projects/trac
# ot kakvo shte generirame indeksa (ne e zadulzhitelen)
PythonOption TracEnvIndexTemplate /home/projects/trac/listing.cs
# debug mode ON
PythonDebug on
Restartirame survura i proveriavame. Triabva da se vizhda neshto podobno na slednata kartinka
Ako li puk ne ... pochvaite da gledate v logovete kakvo pishe.
Sledva da pusnem svn survur. Tova se pravi s pomoshtta na svnserve. V sluchaia sum izbral da go startiram prez xinetd ponezhe niama da e tolkova natovaren. Za po goliama sigurnost shte raboti kato otdelen potrebitel (svnserv)
Konfiguratsiiata na xinetd e slednata
service subversion
{
# slushame samo na IPv4 adres
flags = IPv4
# uslugata NE e spriana
disable = no
# potrebitel i grupa
user = svnserv
group = svnserv
# maksimalen broi instantsii
instances = 5
# be nice :)
nice = 15
# koi tochno e survurut
server = /usr/bin/svnserve
# argumenti za startiraneto mu
server_args = --inetd --root /home/projects/svn
# obichainite raboti (logvane, tipazh ...)
log_on_success = PID HOST DURATION
log_on_failure = HOST ATTEMPT
wait = no
socket_type = stream
}
Testvaite sus svn klient dali raboti.
Podsiguriavane i podobriavane na Uslugite
Sled kato imame raboteshti uslugi vreme e da pomislim za tiahnoto podsiguriavane. A imenno eto kakvo shte napravim:
Za Trac sistemite
- Premahvane na anonimniiat dostup (iztsialo). Za tazi tsel shte ni se nalozhi da izpolzvame trac-admin. Vuzmozhno e da se realizira prez web interfeis no vse pak triabva da se znae kak se pravi na ruka.
# vlizame v interaktiven rezhim
trac-admin /projects/trac/project1
# privilegiite se upravliavat posredstvom komandata permission
Trac [/home/projects/trac/project1]> permission help
permission list [user]
-- List permission rules
permission add [action] [...]
-- Add a new permission rule
permission remove [action] [...]
-- Remove permission rule
# tova e prosto za zapoznavane
# sledva sushtinskoto premahvane
Trac [/home/projects/trac/project1]> permission remove anonymous *
Veche anonimnite potrebiteli niamat nikakvi prava.
- dobaviane na nov administrativen potrebitel s pulni prava. Tova se pravi za da imame po lesen kontrol.
Trac [/home/projects/trac/project1]> permission add user1 TRAC_ADMIN, MILESTONE_DELETE ....
# vsichki vuzmozhni privilegii
Taka dobaveniiat potrebitel user1 efektivno poluchava pulen i absolyuten kontrol.
- aktivirane na administratorskiiat panel - tazi protsedura se izvurshva chrez redaktsiia na kkonfiguratsionniiat fail conf/trac.ini v direktoriiata na nashiiat proekt. Za da aktivirame administratorskiiat interfeis e neobhodimo da razreshim izpolzvaneto na komponentite koito sa ni nuzhni a imenno da dobavim
[components]
webadmin.* = enabled
- vklyuchvane na podobren protses na vlizane v sistemata - po nachalo protsesa na vlizane v Trac ne e osobenno krasiv nito puk udoben, zatova i shte bude podmenen ot razshirenieto TracAccountManager. To ima zavisimost ot TracWebAdmin koito veche e aktiviran. Za da mozhem da polzvame podobreniiat protses triabva purvo da izklyuchim vgradeniiat vuv trac i da aktivirame noviiat. Tova stava otnovo s redaktsiia na trac.ini
[components]
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.abstractpasswordfilestore = enabled
acct_mgr.htfile.htdigeststore = disabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = disabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
trac.web.auth.loginmodule = disabled
[account-manager]
password_file = /home/projects/trac/users
password_store = HtPasswdStore
Kakvo tochno pravi vsiaka optsiia e dobre obiasneno v dokumentatsiiata (linkovete sa v kraia)
Sega e neobhodimo da restartirame web survura za da vleznat v sila nashite promeni.
Za svn survura:
Zabraniavane na vsiakakuv dostup za neautorizirani potrebiteli
Tova se izpulniava kato se redaktirat konfiguratsiite na svn survura. Te se namirat v direktoriiata v koiato e nasheto hranilishte na kod. Modifitsirame gi po sledniiat nachin:
conf/svnserve.conf
### This file controls the configuration of the svnserve daemon
### Visit http://subversion.tigris.org/ for more information.
[general]
# nikakuv dostup za anonimnite
anon-access = none
password-db = passwd
authz-db = authz
realm = Project 1
conf/authz
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
[groups]
# za koi put ide rech (pravata se unaslediavat)
[/]
# pravata na potrebitel (chetene i pisane)
user1 = rw
# pravata na vsichki ostanali (pulna nula)
* =
conf/passwd
### This file is an example password file for svnserve.
[users]
user1 = password
Zaklyuchenie
Sled kato sme si svurshili vsichkata rabota sledva da restartirame za edin posleden put apache i xinetd i da zapochnem da si polzvame sistemata. Za podrobnosti za rabotata s neia ... vuv vruzkite
Vruzki
Trac
mod_python
Apache
Subversion
TracWebAdmin
TracAccountManager
<< NVIDIA instalatsiia pod SuSE10.1 s 3D | iptables s layer7 i pp2p pod slackware 11 new! >>
|