gitlab + puppet

20 views
Skip to first unread message

Arnau Bria

unread,
May 20, 2015, 2:59:38 AM5/20/15
to puppet-user...@googlegroups.com
Hola,

el otro día Xavi me dijo que con los hooks genéricos de gitlab no era
necesario añadir un hook por repositorio. Mi pregunta es qeu en en
gitlab tengo otras cosas a parte de módulos de puppet, así que
aprovecho para preguntaros, es posible añadir un hook a un conjunto de
repos X, o por usuario quizá?


Un saludo,
Arnau

Matthias Saou

unread,
May 20, 2015, 4:18:09 AM5/20/15
to puppet-user...@googlegroups.com
En las versions recientes de GitLab (parece que 7.5+) han cambiado un
poco la forma de gestionar los hooks, supongo que para poder hacer que
functionen hooks configurados desde la interfaz web.

Basicamente todos los repos en el filesystem tienen sus hooks apuntando
a algo generico+interno de GitLab. A partir de ahi, no he mirado bien la
parte interfaz web etc. pero supongo que permite hacer cosas ahora.

Para hooks caseros que ejecutan comandos en el servidor, hay que todavia
ponerlos a mano en cada repo donde se quieren, pero dentro de
'custom_hooks' en vez de 'hooks' (este no se tiene que tocar mas) :
http://doc.gitlab.com/ce/hooks/custom_hooks.html

Nota 1 : Se ejecutan como usuario 'git' para una instalacion Omnibus
(jugar con sudoers y !requiretty si es necesario).
Nota 2 : El contenido de los 'custom_hooks' *NO* esta incluido dentro
de los backups creados con la herramienta de backup de GitLab!

En tu caso, creo que deberias investigar si hay alguna forma de
'enchufar' codigo en los hooks genericos/intermedios de GitLab. Con
suerte desde ahi puedes ir ejecutando lo que quieras basado en cosas
como el nombre del repo.

Si averiguas algo interesante, a mi me interesa :-D

Matthias

--
Matthias Saou ██ ██
██ ██
Web: http://matthias.saou.eu/ ██████████████
Mail/XMPP: matt...@saou.eu ████ ██████ ████
██████████████████████
GPG: 4096R/E755CC63 ██ ██████████████ ██
8D91 7E2E F048 9C9C 46AF ██ ██ ██ ██
21A9 7A51 7B82 E755 CC63 ████ ████

Arnau Bria

unread,
May 21, 2015, 4:39:58 AM5/21/15
to puppet-user...@googlegroups.com
On Wed, 20 May 2015 10:18:02 +0200
Matthias Saou wrote:

> On Wed, 20 May 2015 08:58:47 +0200
> Arnau Bria <arnau...@gmail.com> wrote:
>
> > Hola,
> >
> > el otro día Xavi me dijo que con los hooks genéricos de gitlab no
> > era necesario añadir un hook por repositorio. Mi pregunta es qeu en
> > en gitlab tengo otras cosas a parte de módulos de puppet, así que
> > aprovecho para preguntaros, es posible añadir un hook a un conjunto
> > de repos X, o por usuario quizá?
>
> En las versions recientes de GitLab (parece que 7.5+) han cambiado un
> poco la forma de gestionar los hooks, supongo que para poder hacer que
> functionen hooks configurados desde la interfaz web.

yo tengo 7.9.

> Basicamente todos los repos en el filesystem tienen sus hooks
> apuntando a algo generico+interno de GitLab. A partir de ahi, no he
> mirado bien la parte interfaz web etc. pero supongo que permite hacer
> cosas ahora.

bueno, el otro día pensaba que podría poner un hook genérico
(entendiendo que
http://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks#Server-Side-Hooks
son genéricos) que determine si el usuario es A/B o el repo contiene X
para entonces correr r10k. Aunque lo veo un poco chapuza.

>
> Para hooks caseros que ejecutan comandos en el servidor, hay que
> todavia ponerlos a mano en cada repo donde se quieren, pero dentro de
> 'custom_hooks' en vez de 'hooks' (este no se tiene que tocar mas) :
> http://doc.gitlab.com/ce/hooks/custom_hooks.html

exacto. Eso es lo que estoy haciendo ahora mismo. Para cada nuevo repo
un nuevo directorio custom hook con el mismo contenido que el resto.

> Nota 1 : Se ejecutan como usuario 'git' para una instalacion Omnibus
> (jugar con sudoers y !requiretty si es necesario).

en mi caso, como medio expliqué en la presentaciń, creé un usuario
intermedio que corre los hooks y actuliza el árbol de los entornos de
puppet.

> Nota 2 : El contenido de los 'custom_hooks' *NO* esta incluido dentro
> de los backups creados con la herramienta de backup de GitLab!
>
> En tu caso, creo que deberias investigar si hay alguna forma de
> 'enchufar' codigo en los hooks genericos/intermedios de GitLab. Con
> suerte desde ahi puedes ir ejecutando lo que quieras basado en cosas
> como el nombre del repo.

Exco, a ver si me curro algo para el post-reveive genérico.

> Si averiguas algo interesante, a mi me interesa :-D

ya te diré, por ahora sigo migrando el 5% de código que me queda. Mi
módulos :-)

> Matthias
Gracias,
Arnau
Reply all
Reply to author
Forward
0 new messages