Gitosis en CentOS 5

On noviembre 30, 2010, in General, by netman

Bueno la idea es aprender a instalar, configurar y administrar un servidor de Git de lo que se considera la forma mas fácil y segura que es usando el método de gitosis. Una de las ventajas que nos da gitosis es que es una herramienta que nos permite gestionar el acceso a los repositorios Git  dando acceso de lectura, escritura por usuarios  o grupos de usuarios a distintos proyectos.

Otras de las facilidades de gitosis es que puede gestionar multiples proyectos con una unica cuenta del lado del servidor

Primero instalamos Git

yum install git git-daemon

Nos descargamos gitosis desde su repositorio

mkdir -p /root/src
cd /root/src
git clone git://eagain.net/gitosis.git

Para poder instalar gitosis es necesario instalar las python-setuptools

yum install python-setuptools

Instalamos gitosis

cd gitosis
python setup.py install

Es necesario agregar un usuario que es el que usara gitosis en este caso le pondremos git

adduser git -c 'git version control' -d /var/gitrepos -s /bin/bash

Debemos llevar nuestra public key (rsa o dsa) al servidor donde correrar gitosis y la exportamos, para este caso colocamos la key en el directorio del root

su - git
gitosis-init < /root/id_dsa.pub

Agregamos los permisos necesario primero deslogueandonos del usuario git

exit
chmod 755 /var/gitrepos/repositories/gitosis-admin.git/hooks/post-update

Desde aca en adelante todo el resto de los comandos lo vamos a realizar en nuestra maquina local y en la de los usuarios que van a usar nuestro repositorio en este caso user1, primero es necesario clonarnos el repo de administrarcion

git clone git@NUESTRO_SERVIDOR_DE_GIT:gitosis-admin.git
cd gitosis-admin

Aca vamos a tener basicamente 2 cosas:

El archivo gitosis.conf donde vamos a configurar los distintos proyectos y usuarios, la carpeta keydir es donde vamos a guardar las public key de nuestros usuarios

Veamos  como agregar un nuevo usuario a un nuevo proyecto, para ello debemos editar el archivo gitosis.conf

vi gitosis.conf

Agregando unas lineas similares a estas

[group migrupo]
writable = primer_proyecto
members = user1

Comiteamos y subimos los cambios

git commit -a -m "Agregando el usuario user1 al primer proyecto de mi repositorio de git"
git push

Agregamos la clave publica de user1 en la carpeta keydir, comiteamos y subimos

cp /path/to/user1.pub keydir/
git add keydir/user1.pub
git commit -a -m "Agregando la clave publica de user1"
git push

En la maquina o home de nuestro primer usuario “user1″ vamos a crear nuestro primer proyecto

mkdir -p /home/user1/ProyectosGIT/primer_proyecto
cd /home/user1/ProyectosGIT/primer_proyecto
git init
git remote add origin git@NUESTRO_SERVIDOR_DE_GIT:primer_proyecto.git

Si intentamos subir esto sin que la carpeta tenga por lo menos un archivo puede darnos error asi que creamos nuestro primer archivo para poder inicializar el proyecto

echo "Mi primer archio" > README
git add README
git commit -a -m "Comiteando mi primer archivo"

Finalmente inicializamos nuestro primer proyecto

git push origin master:refs/heads/master

Listo ya esta todo funcionando,  si necesitamos agregar mas usuarios o proyectos es tan simple como desde el usuario adminstrador editar el gitosis.conf y agregar la clave los usuarios al keydir, comitear y subir.

Tagged with:  

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

CAPTCHA image
*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>