Drift/Wiki
Denne artikkelen er basert på at wikien kjører MoinMoin. Hvis den har blitt migrert til noe fornuftig siden da, pris deg lykkelig.
Pakkeaspektet
Det er to pakker assosiert med moin, python-moinmoin og moinmoin-common. Disse oppdateres automatisk (typisk via pkgsync) og skaper mye moro. Dette fordi moin er basert på at ting skal brekke så mye som mulig hver gang man oppgraderer. F.eks. er default en URL med versjonsnummeret (p.t. /moin163) for statisk innhold. Filen som setter versjonen blir automatisk oppdatert med pakkene, men apache-aliaset blir selvfølgelig ikke det. Det er også lagt opp til at man skal kopiere noen filer ut av pakkeområdet og konfigurere dem, gjerne etterfulgt av at neste versjon av moin endret APIet så den kopierte versjonen ikke fungerer lenger. Good times, good times.
Men nok klaging.
python-moinmoin
Denne pakken dekker kjernefunken, dvs MoinMoin-modulen.
- /usr/share/doc/python-moinmoin - docs
- /usr/share/python-support/python-moinmoin - MoinMoin-modulen
moinmoin-common
Denne skaffer config-templates og statisk innhold (themes etc).
- /etc/moin - topnivås konfig
- /usr/share/doc/moinmoin-common - docs
- /usr/share/moin - forskjellige templates
- /usr/share/moin/config - config templates
- /usr/share/moin/data - user content
- /usr/share/moin/htdocs - static content
- /usr/share/moin/server - entry point templates
- /usr/share/moin/underlay - builtin content
Andre småting:
- /usr/bin/moin-update-wikilist
- /usr/sbin/moin-mass-migrate
- /usr/share/lintian/overrides/moinmoin-common
- /usr/share/man/man1/moin-update-wikilist.1.gz
- /usr/share/man/man8/moin-mass-migrate.8.gz
Kodesti
Kodestien som er anbefalt er som sagt en smule ... ustabil. Den går noe som dette:
- Apache
- Peker på htdocs via et Alias (/moin163)
- (htdocs blir oppdatert av pakkene, så det er ikke lenge før /moin163 egentlig peker på innhold for 1.6.4 eller nyere)
- Peker på server/moin.cgi via et ScriptAlias (/pvv)
- moin.cgi
- Ligger i en instans-directory og peker på farmconfig.py (toppnivåkonfig)
- Siden moin.cgi er en kopi blir den ikke oppdatert, men APIet den jobber mot blir det.
- farmconfig.py
- Ligger i /etc/moin og fungerer ganske greit
- ... men den krever egentlig at wikikonfigen ligger i samme directory
- Den peker altså på wikiconfig.py
- wikiconfig.py
- Hører egentlig hjemme i instans-directoryen, men må ligge sammen med farmconfig.py pga pathhensyn
- Peker på data og underlay (og cache)
- data
- Ligger i instans-directoryen, og hører hjemme der. Klarer seg fint.
- underlay
- Ligger i instans-directoryen, men hører ikke hjemme der.
- Dette blir oppdatert ved wikioppdatering, så man må manuelt overskrive overlay hver gang
- Og pga skrivetilgang og ting kan man ikke peke på den pakkestyrte overlayen
Forenklet oppsett
For å gjøre ting så enkelt som mulig er wikioppsettet på tvilling minimalisert.
- Apache
- Peker på /static i stedet for /moin163 så vi unngår versjonshopp
- (Bruk av /moin163 blir overstyrt i wikiconfig.py)
- Peker på moin/server/moin.cgi (filen som skal kopieres) i stedet for en kopi
- (Defaulten peker på /etc/moin, som er alt vi trenger.)
- (Selv om vi kunne lagt til flere pekere er det fånyttes, siden de ikke blir lest av maintenancescript)
- moin.cgi
- Er nå pakkestyrt, og peker på /etc/moin/farmconfig.py
- farmconfig.py
- Er nesten pakkestyrt. Er endret til å peke på pvv.py i stedet for mywiki.py
- (Vi kunne endret mywiki.py i stedet, men en av filene blir uansett ikke pakkestyrt, så en separat pvv-fil blir ryddigere.)
- pvv.py
- Ikke pakkestyrt, men den inneholder jo nettopp alle de tingene vi setter
- Peker på /var/www/wiki.pvv.ntnu.no som inneholder data, underlay og cache
- (Her overstyrer vi htdocs til å hete /static uavhengig av versjon)
Altså er det hele pakkestabilt med unntak av:
- /etc/moin/farmconfig.py må oppdateres manuelt og så settes til å lese pvv i stedet for mywiki
- /etc/moin/pvv.py må oppdateres hvis APIet endrer seg
- /var/www/wiki.pvv.ntnu.no/underlay må overskrives med /usr/share/moin/underlay hvis det skal oppdateres (men veldig ikke-kritisk)
I teorien. Vi får se med praksis.