Archivo de la categoría: Uncategorized

This post has not been cataloged in any category.

Administrando repositorios con gitosis

Como prometí cuando escribí el post Instalando gitosis en Leopard, aquí tenéis una guía básica sobre como administrar repositorios usando gitosis una vez completamos la instalación como se describe en ese post. Esta información se basa en la publicada en el sitio de scie.nti.st que también se referencia en el post anterior.

Yo he creado una carpeta en mi home llamada projects en la que tengo todos los proyectos y el repositorio gitosis-admin necesario para administrar el resto de repositorios, pero podéis hacerlo como queráis.

macbook$ mkdir projects
macbook$ cd projects
macbook$ git clone git@miservidor:gitosis-admin.git

Creación de repositorios

Para crear repositorios, abrimos el fichero gitosis.conf que hay en el repositorio gitosis-admin que acabamos de clonar y veremos que por defecto contiene algo parecido a lo siguiente:

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = javier@macbook.local

Básicamente este fichero define un grupo llamado gitosis-admin formado por javier@macbook.local que tiene permiso de escritura sobre el repositorio gitosis-admin. javier@macbook.local es el nombre que gitosis ha dado al fichero de clave pública que le pasamos durante la instalación sin la extensión *.pub que podrás encontrar en la carpeta keydir.

Para crear un nuevo repositorio vamos a crear también un grupo nuevo, para mantener un grupo sólo para administración que en principio sólo me incluye a mí añadiendo las siguientes líneas:

[group a-team]
writable = bomb
members = javier@macbook.local

Para hacer efectivo el cambio, simplemente guardamos el fichero y enviamos los cambios al servidor:

macbook$ git commit -a -m "Creando el equipo A para hacer una bomba"
macbook$ git push

Desde este instante ya tenemos permiso para crear y subir nuestro nuevo repositorio ejecutando los siguientes comandos:

macbook$ mkdir bomb
macbook$ cd bomb
macbook$ git init
macbook$ git remote add origin git@miservidor:bomb.git

# Crear algunos ficheros y hacer cuantos adds y commits se desee

macbook$ git push origin master:refs/heads/master

A partir de este momento el repositorio se crea en el servidor y se puede sincronizar con el repositorio mediante pull y push.

Gestión de usuarios

Como la autentificación se realiza mediante pares de claves RSA públicas y privadas, para añadir otros usuarios basta con copiar sus claves públicas al directorio keydir del repositorio gitosis-admin. Después podremos darles permisos sobre los repositorios modificando el fichero gitosis.conf
Para crear los pares de claves, usamos, como en el momento de la instalación el comando ssh-keygen y copiamos la clave pública al servidor:

murdock$ ssh-keygen -t rsa
murdock$ scp ./ssh/id_rsa.pub javier@macbook:/tmp/murdock.pub #Lo copio a mi portátil para subirlo mediante git

Ahora simplemente movemos la clave a keydir dentro del repositorio gitosis-admin:

macbook$ mv /tmp/murdock.pub ~/projects/gitosis-admin/keydir/

Y editamos nuestro fichero de configuración para dar permiso de escritura a Murdock sobre el repositorio bomb:

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = javier@macbook.local

[group a-team]
writable = bomb
members = javier@macbook.local murdock

Subimos los cambios y Murdock podrá acceder fácilmente a los repositorios

macbook$ git add .
macbook$ git commit -a -m "Dando acceso a Murdock al proyecto de Bomba"
macbook$ git push

Y con esto ya sabemos lo básico para gestionar nuestros repositorios con acceso remoto sin pagar a nadie que nos los gestione, ahora a trabajar!

Anuncios

Hello world

¡Hola a todos! Este es el primer post de mi nuevo Blog. Pretendo que este blog sea un blog de opinión, donde expresaré mis observaciones personales acerca del mundo de las nuevas tecnologías. Soy coautor del blog Pragmatic Techniques, un blog en inglés sobre técnicas de programación y tecnología en general. Podéis informaros sobre mí en la sección “Sobre el autor

Esperando que mis aportaciones sean de provecho, un cordial saludo 😉