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.
