Advertisement
Bienvenido a Squishdot Reportes Anuncios Debian Ciencia Linux
 principal
 nivel superior
 enviar artículo
 buscar
 administrar
 acerca de ...
 rdf
 rss
 main


Reporte 27 abr -2 mayo
Linux Posted by Víctor Martínez on Thursday May 08, @04:36PM el 2008
from the dept.
Bueno estuve trabajando con el subversion, por que no actualizaba el sitio como debiera (via rsync).
Es decir el sitio del aityc no se actualizaba, por cierto según me decian se compro más de un dominio, ¿me dicen cuales para hacer mirror, shadow o redirect? Aún cuando se ven varios commits de Ricardo pueden notar por los mensajes que es un servidor debuggeando, sin embargo desde el commit 3 el sitio esta arriba.

$ svn log aityc/
------------------------------------------------------------------------
r20 | pks | 2008-05-05 22:50:07 -0500 (Mon, 05 May 2008) | 1 line

delete pks was here
------------------------------------------------------------------------
r19 | pks | 2008-05-02 21:22:46 -0500 (Fri, 02 May 2008) | 2 lines

Sigo con el wrapper

------------------------------------------------------------------------
r18 | pks | 2008-05-02 21:21:32 -0500 (Fri, 02 May 2008) | 2 lines

Wrapper c

------------------------------------------------------------------------
r17 | pks | 2008-05-02 21:01:47 -0500 (Fri, 02 May 2008) | 2 lines

Sigo probando, sorry por la cantidad de commits

------------------------------------------------------------------------
r16 | pks | 2008-05-02 20:52:34 -0500 (Fri, 02 May 2008) | 2 lines

Va la buenas

------------------------------------------------------------------------
r15 | pks | 2008-05-02 20:28:14 -0500 (Fri, 02 May 2008) | 2 lines

Actualizo

------------------------------------------------------------------------
r14 | pks | 2008-05-02 20:10:36 -0500 (Fri, 02 May 2008) | 2 lines

Test

------------------------------------------------------------------------
r13 | pks | 2008-05-02 19:54:09 -0500 (Fri, 02 May 2008) | 2 lines

Añado cosas al index

------------------------------------------------------------------------
r12 | pks | 2008-05-02 19:49:05 -0500 (Fri, 02 May 2008) | 1 line

mm chale a ver si ahora si
------------------------------------------------------------------------
r11 | pks | 2008-05-02 19:43:43 -0500 (Fri, 02 May 2008) | 1 line

vic wasn't here
------------------------------------------------------------------------
r10 | vicm3 | 2008-05-02 19:39:57 -0500 (Fri, 02 May 2008) | 1 line

Otra prueba... si ya se post-commit y work.sh si deben pertenecer al usuario que hace commit
------------------------------------------------------------------------
r9 | vicm3 | 2008-05-02 19:33:13 -0500 (Fri, 02 May 2008) | 1 line

Estoy probando con una modificación al index.html
------------------------------------------------------------------------
r8 | pks | 2008-05-02 19:13:00 -0500 (Fri, 02 May 2008) | 1 line

encimo archivos anteriores
------------------------------------------------------------------------
r7 | pks | 2008-05-02 19:01:28 -0500 (Fri, 02 May 2008) | 1 line

index modificado para prueba
------------------------------------------------------------------------
r6 | vicm3 | 2008-04-22 22:27:17 -0500 (Tue, 22 Apr 2008) | 2 lines

Quito el 1/ para confirmar que el script funciona

------------------------------------------------------------------------
r5 | vicm3 | 2008-04-22 22:20:25 -0500 (Tue, 22 Apr 2008) | 2 lines

Prueba

------------------------------------------------------------------------
r4 | vicm3 | 2008-04-22 22:05:36 -0500 (Tue, 22 Apr 2008) | 3 lines

Añado un password que es *** para el usuario ***


------------------------------------------------------------------------
r3 | pks | 2008-04-22 21:40:09 -0500 (Tue, 22 Apr 2008) | 1 line


------------------------------------------------------------------------
r2 | vicm3 | 2008-04-22 21:31:28 -0500 (Tue, 22 Apr 2008) | 2 lines

Borro el index

------------------------------------------------------------------------
r1 | vicm3 | 2008-04-20 23:33:32 -0500 (Sun, 20 Apr 2008) | 2 lines

Este es el primer log, pongo nada mas un index que no dice nada.

------------------------------------------------------------------------

Localice y finalmente logre hacer funcionar que svn actualice sitios webs via svn+ssh el problema principal era que al cada usuario enviar su commit el svn tomaba el uid y gid del usuario que lo lanzaba, asi al ejecutar nuestro script de post-commit se quedaba esperando por el password para ejecutar "sudo".

El post-commit que tanta lata nos ha dado... se le trababa a Gwolf por que se quedaba esperando el password, ahora que lo ha estado usando Ricardo, estuve debugeando, y note que el sudo que estaba usando para hacer efectivo el usuario del commit hace que la cosa falle totalmente.

Bueno de una manera medio cochina, con un binario setgid se resolvio la cosa.

linux:/var/svn/aityc/hooks# more post-commit.c
#define PATH_TO_POST_COMMIT_SCRIPT "/var/svn/aityc/hooks/work.sh"
#include <sys/types.h>
#include <unistd.h>
main( ac, av ) char **av;
{
setuid( 527 );
seteuid( 527 );
execv( PATH_TO_POST_COMMIT_SCRIPT, av );
}

Retome la idea de
http://blog.localkinegrinds.com/2006/12/15/dreamhost-subve
rsion-post-commit-tutorial/

http://arstechnica.com/articles/columns/linux/linux-20050406
.ars

http://svn.haxx.se/users/archive-2004-01/0717.shtml
Especialmente de este que mejora el de localkinegrinds

#define REAL_SCRIPT "pathtoscript/post-commit.bash"
#include <sys/types.h>
#include <unistd.h>
main( ac, av )
char **av;
{
setuid( myCMUserID );
seteuid( myCMUserID );
execv( REAL_SCRIPT, av );
}

Que es practicamente el que estoy usando

Desgraciadamente tengo que como root darle permisos 4755 y owner root.users para que funcione.

Pero esto resuelve el problema, ya que cada vez que alguien ejecuta un commit al sistema el usuario que efectivamente corre el hook es quien inicio el commit y eso no permite que haga el update del sitio puesto que al ejecutar nuestro
antiguo post-commit se tardaba o se quedaba "atorado" por que en realidad estaba ejecutando el sudo y por lo mismo se quedaba esperando por el password y al ser ejecutado desde una forma no interactiva pues si actualizaba el repositorio,
pero no el sitio.

Por otro lado Mongrel se ha muerto en otras dos ocasiones el 28/4/08 a las 3:10pm y el 1/5/08 a las 3:20pm, nuestro script que lo levanta cuando se muere ha estado funcionando bien y no tenemos reportes de interrupción de parte de los usuarios.

Reporte 9-V-08 | Reporte cuasibisemánico: 28abr-2may-8may  >

 

Related Links
  • Articles on Linux
  • Also by Víctor Martínez
  • Contact author
  • The Fine Print: The following comments are owned by whoever posted them.
    ( Reply )

    Powered by Zope  Squishdot Powered
      "Any system that depends on reliability is unreliable." -- Nogg's Postulate
    All trademarks and copyrights on this page are owned by their respective companies. Comments are owned by the Poster. The Rest ©1999 Butch Landingin.
    [ home | post article | search | admin ]