La necesidad de crear un mirror de El Directorio (slcolombia.org y el-directorio.org) que se actualice automáticamente, surge de los problemas que inicialmente se tenía con la disponibilidad de los servidores en los que se encontraba este sitio web y posteriormente, por la imposibilidad de contar con una administración comunitaria.

Configuración Desktop

1. Instalar una versión de python superior a la 2.4: http://www.python.org/

2. Descargar y descomprimir la versión 1.6.4 de moin: http://moinmo.in/MoinMoinDownload

3. Descargar y descomprimir el último backup completo (data_full_*.tgz) de slcolombia.org: http://www.slcolombia.org/dataED/

4. Mover los directorios data y underlay del backup al directorio wiki de moin.

5. Modificar el puerto (si se requiere) y el acceso a las interfaces (si es requiere abrir el acceso desde otros equipos) en el archivo moin.py

port = 8080
interface = ''

6. Modificar el archivo con la configuración wikiconfig.py del wiki (se puede tomar como referencia el archivo que viene en el backup):

# -*- coding: iso-8859-1 -*-
import sys, os
from MoinMoin.config.multiconfig import DefaultConfig

class Config(DefaultConfig):
    moinmoin_dir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
    data_dir = os.path.join(moinmoin_dir, 'wiki', 'data')
    data_underlay_dir = os.path.join(moinmoin_dir, 'wiki', 'underlay')
    sitename = 'El Directorio'
    interwikiname = 'ElDirectorio'
    logo_string = u'<img src="http://www.slcolombia.org/wiki/common/moinmoin.png" alt="Logo El Directorio">'
    page_front_page = u"PáginaInicial"
    acl_rights_default = u"All:read"
    default_lang = 'es'
    charset = 'iso-8859-1'
    navi_bar = [u'%(page_front_page)s',u'CambiosRecientes',u'AyudaDeContenidos',u'Lista_de_correo/InterfazWikiForo',u
'BuscarPágina',u'AcercaDe']
    theme_default = 'classic'
    theme_force = True
    tz_offset = -5.0
    language_default = 'es'
    show_hosts = 1

7. Se ejecuta el script de python para iniciar el servicio:

 $ python moin.py

Acceder a través de un navegador: http://dominio:puerto

Scripts para automatizar la sincronización cada domingo (que es cuando se realizan los backups en el servidor slcolombia.org):

mirror-slcolombia.sh

# Mirror de El Directorio

# Definicion de variables globales
DIR_MOIN="/home/moin-slcolombia"
DAEMON="moin.py"
ANIO=`date +% Y`
MES=`LC_TIME="en_US" date +% b`
DIA=`date +%-d`
DOMINIO="http://www.slcolombia.org/dataED"
ARCHIVO="data_full_"$ANIO"-"$MES"-"$DIA".tgz"
URL=$DOMINIO/$ARCHIVO
SIZE_ARCHIVO=0
SIZE_COMPARACION=360000000  # Peso del archivo para verificar descarga
USER="www-data"

# Descarga de archivo
cd $DIR_MOIN
echo "Descargando el archivo $URL"
wget $URL
ls -lh $ARCHIVO
SIZE_ARCHIVO=`ls -l $ARCHIVO | awk '{print $5}'`

if [ $SIZE_ARCHIVO -gt $SIZE_COMPARACION ]; then
        # Descomprimir
        tar -xzf $ARCHIVO

        # Bajar el servicio
       ps -ef |grep "python $DIR_MOIN/$DAEMON" |grep $USER | awk '{print "kill " $2}' | sh

        # borrar directorios previos y mover
        rm -fr wiki/data wiki/underlay
        mv u02/eldirectorio/data u02/eldirectorio/underlay wiki

        # establece los permisos adecuados
        chown $USER.$USER -R $DIR_MOIN
        chmod 755 -R $DIR_MOIN

        # Inicia el servicio
        su -c "python $DIR_MOIN/$DAEMON" $USER &

        # Borra los archivos que no necesita
        rm -fr u02 $ARCHIVO

        echo -e "\n Actualizacion Realizada!"
else
        echo -e "\n Actualizacion abortada!"
fi

/etc/init.d/moin-slcolombia

NAME="Moin slcolombia"
USER="www-data"
DIR="/home/moin-slcolombia"
DAEMON="moin.py"

case "$1" in
  start)
    echo "Starting $NAME..."
    su -c "python $DIR/$DAEMON" $USER &
    ;;

  stop)
    echo -n "Stopping $NAME..."
    echo .
    ps -ef |grep "python $DIR/$DAEMON" |grep $USER | awk '{print "kill " $2}' | sh
    ;;

*)
    echo "Usage: /etc/init.d/$NAME {start|stop}"
    exit 1
    ;;
esac

Configuración Server

Por realizar!!


MoinMoin/Mirror (last edited 2009-06-11 19:32:22 by Ulises)